元组(Turple)与列表类似,不同点是:
- 元组的元素不可修改;
- 元组使用圆括号
()
,列表使用方括号[]
。
创建元组
使用()
创建一个元组,每个元组中的值由逗号,
分隔:
>>> water = ('water','water','everywhere')
>>> water
('water', 'water', 'everywhere')
这里创建了一个元组,其存储的值依次是'water'
、'water'
和'everywhere'
。并且将这个元组赋值给了变量water
。
创建一个空元组:
>>> water = ()
>>> water
()
创建一个只有一个元素的元组:
>>> water = ('water',)
>>> water
('water',)
>>> type (water)
<class 'tuple'>
需要注意的是,虽然只有一个元素,仍然需要在该元素后面加上逗号,
。如果没有,python会把其当做字符串:
>>> water = ('water')
>>> water
'water'
>>> type (water)
<class 'str'>
如果元组中有重复项,可以使用乘号*
创建元组:
>>> water = ('fire',) * 3
>>> water
('fire', 'fire', 'fire')
访问元组
可以使用下标索引或者切片来访问元组:
>>> letters
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>> letters[1] # 使用下标索引
'b'
>>> letters[-2]
'f'
>>> letters[3:5] # 使用切片
('d', 'e')
多变量赋值
Python中元组的一个特别之处是,它可以出现在等号=
的左侧,此时它是一个变量元组。
>>> a = 1
>>> b = 2
>>> (a, b)
(1, 2)
>>> (b, a) = (a, b) # a,b互换
>>> (a, b)
(2, 1)
这是我见到过最简单的两个值互换操作了。(b, a) = (a, b)
进行的操作是:
- 将等号右侧元组第一个值赋值给左侧变量
b
。 - 将等号右侧元组第二个值赋值给左侧变量
a
。
可以省略左侧元组的括号:
b, a = (a, b)
删除元组
由于元组不可修改,所以不能删除元组中单个的值,但是可以使用del
语句删除整个元组:
>>> letters
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>> del letters
>>> letters
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'letters' is not defined
元组的一些其他操作
使用加号+
连接两个元组:
>>> water1 = ('water', 'water')
>>> water2 = ('everywhere',)
>>> water = water1 + water2 # 连接两个元组
>>> water
('water', 'water', 'everywhere')
len(turple)
得到元组的长度(元素个数):
>>> water
('water', 'water', 'everywhere')
>>> len (water)
3
max(turple)
获得元组中的最大值,min(turple)
获得元组中的最小值:
>>> water
('water', 'water', 'everywhere')
>>> max (water)
'water'
>>> min (water)
'everywhere'