文章目录
元组(tuple)
元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
元组的创建
1. 通过()
创建元组,小括号可以省略。
t1 = (1, 2, 3, 3)
print(t1) # (1, 2, 3, 3)
t2 = 4, 5, 6, 7
print(t2) # (4, 5, 6, 7)
t3 = (1, )
print(t3) # (1,)
t4 = 1,
print(t4) # (1,)
2. 通过tuple()
创建元组
格式:tuple(可迭代对象)
print(tuple()) # ()
print(tuple('abc')) # ('a', 'b', 'c')
print(tuple(range(3))) # (0, 1, 2)
print(tuple([1, 2, 3])) # (1, 2, 3)
总结:
tuple()
可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()
可以接收元组、字符串、其他序列类型、迭代器等生成列表。
3. 使用zip()
方法
zip(iter1 [,iter2 [...]]) --> zip object
将多个可迭代对象对应位置的元素组合成为元组,并返回这个zip对象。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
i1 = [1, 2, 3]
i2 = [4, 5, 6, 7]
t = tuple(zip(i1, i2))
print(t) # ((1, 4), (2, 5), (3, 6))
i1 = (1, 2, 3)
i2 = (4, 5, 6, 7)
t = tuple(zip(i1, i2))
print(t) # ((1, 4), (2, 5), (3, 6))
4. 推导式创建元组
t = tuple((i for i in range(3)))
print(t) # (0, 1, 2)
访问元组的元素
1. 元组的元素不能修改
>>> a = (11, 22, 33)
>>> a[0]=44
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
2. 访问元组的元素和列表一样,只不过返回的仍然是元组对象
>>> a = (11, 22, 33, 44, 55)
>>> a[1]
22
>>> a[1:3]
(22, 33)
>>> a[::]
(11, 22, 33, 44, 55)
元组的两个方法
count()
获取某元素在元组中出现的次数
tul = (1, 2, 3, 3, 4, 6, 6, 6)
print(tul.count(6)) # 3
index()
通过元素找索引,找到第一个元素就返回,找不到该元素就报错
tul = (1, 2, 3, 3, 4, 6, 6, 6)
print(tul.index(6)) # 5
总结
-
元组的核心特点是:不可变序列。
-
元组的访问和处理速度比列表快。
-
与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。