python学习笔记——元组注意点总结

元祖tuple

建好元祖之后不可像列表一样修改元素

创建

a = (10,20,30)
# 或者省略小括号
a = 10,20,30
# 注意之含有一个元素的元祖需要依照以下格式创建
a = (20,)
# 或者
a = 20,
  1. 用tuple()
a = tuple()
b = tuple("abc")
c = tuple(range(3))  # 可迭代的对象转成元祖、
d = tuple([2,3,4])
print(a)
print(b)
print(c)
print(d)

输出

()
('a', 'b', 'c')
(0, 1, 2)
(2, 3, 4)

删除

del a

元素访问

同列表
https://editor.csdn.net/md/?articleId=107670577
注意:元组没有list.sorted(),若要对元祖排序,sorted(tupleObj),并生成新的列表对象。

a = (2,5,3,5,7,8)
b = sorted(a)
print(b)

输出的是一个列表

[2, 3, 5, 5, 7, 8]

zip

zip(列表1,列表2,……)
将多个列表对应位置的元素合成为一个元组,并返回这个zip对象

a = [1, 2, 3]
b = [5, 3, 5]
c = [8, 6, 9]
d = zip(a, b, c)
print(d)
d = list(d)
print(d)

输出

<zip object at 0x000002084504F788>
[(1, 5, 8), (2, 3, 6), (3, 5, 9)]

生成器推导式创建元组

  1. 生成器推导器生成的只是一个生成器对象,后续需要转化成元祖或者列表。
  2. 生成器只能生成一次相当于一个指针,循环指向到最后一个对象后,无法回到第一个对象的位置。
s = (x * 2 for x in range(5))
# 第一次调正常生成元组
a = tuple(s)
print(a)
# 第2次调就没有了
b = tuple(s)
print(b)

输出

(0, 2, 4, 6, 8)
()

__next__调用

s = (x * 2 for x in range(5))
a = s.__next__()
b = s.__next__()
c = s.__next__()
d = s.__next__()
e = s.__next__()
print(a, b, c, d, e)

输出

0 2 4 6 8

总结:

  1. 元组的核心特点:不可变序列
  2. 元组的访问和处理速度比列表快
  3. 与整数和字符串一样,元祖可以作为字典的键,而列表不能作为字典的键(由于整数、字符串、元组都是不可变序列

猜你喜欢

转载自blog.csdn.net/weixin_48929099/article/details/107676185
今日推荐