【Python基础】元组tuple

本文标识 : P00012

本文编辑 : swagw 编程工具 : Python 阅读时长 : 5分钟


前言

元组是一个固定长度,不可改变的Python序列对象.

元组与列表类似,不同之处在于元组的元素不能修改.

元组使用小括号,列表使用方括号.

元组创建

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可

tup1 = (7, 8, 9)  tup1

运行结果如下:

(7,8,9)

再建立一个元组

tup2 = ('kobe', 'lebron', 2008, 2018)  tup2

运行结果:

('kobe', 'lebron', 2008, 2018)

用tuple()方法可以将任意序列或迭代器转换成元组

print(tuple([(4, 5, 6), (7, 8)]))  print(tuple('Hello'))

运行结果:

((4, 5, 6), (7, 8))  ('H', 'e', 'l', 'l', 'o')

访问元组

与列表类似,元组可以使用下标索引来访问元组中的值:

tup1 = (7, 8, 9)  tup2 = ('kobe', 'lebron', 2008, 2018)print ('tup1[0]:',  tup1[0])print('tup2[0:2]:',  tup2[0:2])

结果如下:

tup1[0]: 7  tup2[0:2]: ('kobe', 'lebron')

修改元组

元组中的元素值是不允许修改的

tup1 = (7, 8, 9)  tup1[0] = 9

这时会出现报错:

---------------------------------------------------------------------------  TypeError Traceback (most recent call last)  <ipython-input-6-3e90aeea8cb9> in <module>  ----> 2 tup1[0] = 9    TypeError: 'tuple' object does not support item assignment

如果元组中的某个对象是可变的,比如列表,可以在原位进行修改:

tup3 = ('foo', [1, 2], 'Dwayne')  tup3[1].append(4)  tup3

结果如下:

('foo', [1, 2, 4], 'Dwayne')

元组运算符

元组之间可以使用+号和*号进行运算,这样他们可以进行组合和复制,生成一个新的元组:

tup1 = (7, 8, 9)  tup2 = ('kobe', 'lebron', 2008, 2018)  print(tup1 + tup2)  print(tup2*2)

结果:

(7, 8, 9, 'kobe', 'lebron', 2008, 2018)  ('kobe', 'lebron', 2008, 2018, 'kobe', 'lebron', 2008, 2018)

拆分元组

如果你想将元组赋值给类似元组的变量,Python会试图拆分等号右边的值:

tup4  = (4, 5, 6)  a,b,c = tup4    print('a:',a)  print('b:',b)  print('c:',c)

运行结果如下:

a: 4  b: 5  c: 6

再尝试一个例子,元组内的:

tup5  = (7, 8, (1,2))  a,b,c = tup5  print('a:',a)  print('b:',b)  print('c:',c)

结果:

a: 7  b: 8  c: (1, 2)