元组
- 有序
- 可以重复的
- 不可更改的
符号使用()
定义:
1.元组的创建
- 创建一个空元组
>>> st = ()
>>> st1 = tuple()
>>> st, st1
((), ())
>>> type(st), type(st1)
(<class 'tuple'>, <class 'tuple'>)
>>>
- 创建只含有一个元素的元组
需要注意的地方是:如果我们创建只含有一个元素的元组,我们必须在这仅有的一个元素后加上一个","。
>>> tl = (6)
>>> tl, type(tl)
(6, <class 'int'>)
>>> tl = (6, ) # 只有一个元素的元组,必须加上","
>>> tl, type(tl)
((6,), <class 'tuple'>)
- 创建含有多个元素的元组
>>> tl = (1, 2, 3, 4, 5, 6)
和列表一样,元组的元素也可以是不同的数据类型的元素。
>>> tl = (1, "hunan", ['h', 'u', 'n', 'a', 'n'], ('I', 'love', 'python'), {"name": "Tom", "age": 18})
2.元组的基本操作
查
- 通过索引值查找对应的元素
>>> tl = (1, "hunan", ['h', 'u', 'n', 'a', 'n'], ('I', 'love', 'python'), {"name": "Tom", "age": 18})
>>> tl[4]
{'name': 'Tom', 'age': 18}
>>> tl[-1]
{'name': 'Tom', 'age': 18}
>>> tl[::-2]
({'name': 'Tom', 'age': 18}, ['h', 'u', 'n', 'a', 'n'], 1)
- 查找元素的索引值
>>> tl = (1, "hunan", ['h', 'u', 'n', 'a', 'n'], ('I', 'love', 'python'), {"name": "Tom", "age": 18})
>>> tl.index("hunan")
1
>>> tl.index("hunan", 1, 4)
1
>>>
注意:元组是不可变的数据类型:不能够增,删,改。
>>> tl = (1, "hunan", ['h', 'u', 'n', 'a', 'n'], ('I', 'love', 'python'), {"name": "Tom", "age": 18})
>>> tl[0] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
注意到tl里有个列表,那么这个列表中的元素是否可以更改?
>>> tl = (1, "hunan", ['h', 'u', 'n', 'a', 'n'], ('I', 'love', 'python'), {"name": "Tom", "age": 18})
>>> tl[2]
['h', 'u', 'n', 'a', 'n']
>>> tl[2][2] = 'N'
>>> tl
(1, 'hunan', ['h', 'u', 'N', 'a', 'n'], ('I', 'love', 'python'), {'name': 'Tom', 'age': 18})
>>>
拼接
>>> t1 = ('a', 'b', 'c')
>>> t2 = ('d', 'e', 'f')
>>> t1 + t2
('a', 'b', 'c', 'd', 'e', 'f')
>>>
重复
>>> t1 * 3
('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')
>>>
判断元素是否存在
>>> t1 = ('a', 'b', 'c')
>>> 'a' in t1
True
>>> 'a' not in t1
False
>>>
内置函数(最大值最小值)
>>> t1 = ('a', 'b', 'c')
>>> max(t1)
'c'
>>> min(t1)
'a'
>>>
元组的遍历
1)值遍历
tp = ('Python', 'Java', 'C++')
for i in tp:
print(i, end = " ")
# Python Java C++
2)索引遍历
tp = ('Python', 'Java', 'C++')
for i in range(len(tp)):
print(tp[i], end = " ")
# Python Java C++
3)索引-值,遍历
枚举(enumerate),对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
tp = ('Python', 'Java', 'C++')
for index, value in enumerate(tp):
print(index, ':', value)
# 0 : Python
# 1 : Java
# 2 : C++
tp = ('Python', 'Java', 'C++')
for index, value in enumerate(tp, 6):
print(index, ':', value)
6 : Python
7 : Java
8 : C++
print(index + values)
二维元组
>>> tp = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
>>> tp[1][1]
5
三维元组
>>> tp = (((1, 2, 3), (4, 5, 6), (7, 8, 9)),
... ((1, 2, 3), (4, "Hunan", 6), (7, 8, 9)),
... ((1, 2, 3), (4, 5, 6), (7, 8, 9)))
>>> tp[1][1][1]
'Hunan'
>>>