本文标识 : 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)