Python-元组学习笔记(完)

文章目录

元组(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

总结

  1. 元组的核心特点是:不可变序列。

  2. 元组的访问和处理速度比列表快。

  3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

上一篇:C++标准库分析总结(九)——<HashFunction、Tuple>


下一篇:元组&集合