文章目录
- 序列:字符串、列表、元祖、字典、集合
1. 列表list:可以存储任意数据类型
-
常用的列表方法:
-
列表的创建:
方法一:[ ]创建a = [1,2,"a",True]
方法二:list()创建:
list(range(1,11,2))
方法三:range()创建整数列表
a= range(0,10,2) list(a)
方法四:推导式生成 list
a = [x*2 for x in range(5)]
-
列表元素的增加和删除:
a.append(80)
: 在列表末尾添加80,该方法速度最快,推荐使用!
a.extend([1,2,3])
: 在列表末尾添加[1,2,3]这个列表。
a.insert(2,100)
: 在2这个位置上插入100
del a[1]
: 删除列表a中位置1的元素
a.pop(1)
: 删除位置为1的元素,并返回该删除元素
a.remove(100)
: 删除首次出现的指定元素。 -
元素的索引:
# 语法: seq[start:end:step] # 例子: seq=[1,2,3,4,5] seq=[::-1] # 结果:[5, 4, 3, 2, 1]
a[1][2]
: 多维数组的索引list.index(x[, start[, end]])
:index()
函数用于从列表中找出某个值第一个匹配项的索引位置。
-
内置函数sorted()进行排序:
sorted(a)
或者b.sort()
-
reversed()返回迭代器: 第一次输出元素,第二次为空。
2. 元组tuple: 不能删,不能改,其他和列表相似。
- 元组特点:不可变序列;处理速度逼列表快;元组可以作为字典的键,但是列表不可以作为字典的键。
- . zip(元组1, 元组2…):
a = [1,2,3,4]
b = [10,20,30]
c = zip(a,b)
d = tuple(c)
- 生成器:从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。list推导式直接生成list对象,生成器推导式生成的不是list也不是tuple,而是一个生成器对象。
b = (x*2 for x in range(0,15,1))
tuple(b)
- 元组核心特点:不可变序列;处理和访问速度比列表快;元组可以作为字典的键,列表不可以。
3. 字典dict:
菜鸟教程 – 字典 https://www.runoob.com/python3/python3-dictionary.html
-
键(Key)必须是唯一的,但值(value)则不必。
-
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
例如:
-
字典的创建:
方式一:通过 {}、dict() 创建字典对象
a = {"name":"狗子", "age": 18, "city":"北京"} b = dict(name="狗子", age=18, city="北京") c = dict([("name", "狗子"), ("age", 18)])
方拾二:通过zip()创建字典对象
keys = ["name", "age", "job"] values = ["狗子",18, "程序员"] d = dict(zip(keys, values))
方法三:通过 fromkeys() 创建值为空的字典
a = dict.fromkeys(["name", "age", "job"]) a
-
字典元素的访问:
方式一:
a = {"name": "狗子", "age": 18, "job": "程序员"} a["name"]
方拾二:通过 get() 方法获得“值”
a.get("name") a.get("gender", "男") # 若不存在值,可以返回默认对象
- 获得所有的键值对、键、值:
a.items()
a.keys()
a.values()
- 检测一个键是否在字典中:
"name" in a
- 字典元素的添加,修改,删除:
a["age"] = 22
a.update(b)
: 把字典对象b所有的键值对全部添加到a字典对象上,如果key有重复,则直接覆盖。
del(a["name"])
a.clear()
:删除字典a中的所有键值对。
a.pop("age")
:删除指定的键值对,并返回对应的“值对象”。
popitem()
:随机删除和返回该键值对。
4. 集合:集合中的元素不可重复。
a = {1,2,3,4,5}
;b = {3,4,5,6,7}
a.add(9)
a.remove(5)
a.union(b)
a.intersection(b)
a.difference(b)
5. zip()函数
- zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 - zip 语法:
zip([iterable, ...])
- 返回值:返回了一个对象
- 示例:
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
5.1. zip() 例子
注意: zip()
对象使用完,就被清理了,再被调用,输出结果为空!