一、定义:元组可以看作一个“不可变的列表”。用()内的逗号隔开多个任意类型的元素。

二、定义补充:

  1、单个元素的情况:要注意()内必须包含逗号才是元素,若只有一个元素没有逗号表示包含的意思,即还是那个元素。

a = (10)
print(type(a))  # 结果为 int
b = (10,)
print(type(b))  # 结果为tuple

  2、元组内元素的类型:

    ①不可变类型:无法修改。

a = (1, 2, [3, 4])
a[0] = 5
print(a)  # 报错

    ②可变类型:拿列表为例,列表本身不可修改,但是列表为可变类型,其元素可以修改而不改变列表本身,这种变化可以在元组内发生。

b = (1, 2, [3, 4])
print(id(b))
b[2][0] = 5  # 将元组内的子列表的0号索引的元素重新赋值,但子列表的id不变
print(b)  # 结果为 (1, 2, [5, 4])
print(id(b))  # 与开始的id相同

三、作用:按照位置(索引)存放多个值,只用于读不用于改。

四、类型转换:理同列表,可以用for循环遍历的类型都可以用tuple()功能转化为元组,即把每次循环取得的值作为元素组成一个元组。

print(tuple('abc'))  # 结果为 ('a', 'b', 'c')
print(tuple([1, 2, 3]))  # 结果为 (1, 2, 3)
print(tuple({'a': 1, 'b': 2}))  # 把key组成元组,结果为 ('a', 'b')

五、内置操作

  1、按索引取值:可正向可反向,只能取,不能改。

a = (1, 2, 3)
print(a[0])  # 结果为 1
print(a[-1])  # 结果为 3
a[1] = 4  # 报错

  2、切片,长度,成员运算in和not in,查找index,计数count:理同列表。

a = (0, 1, 2, 3, 4, 5, 6)
print(a[:])  # 结果为 (0, 1, 2, 3, 4, 5, 6)
print(a[::])  # 结果为 (0, 1, 2, 3, 4, 5, 6)
print(a[1:6:2])  # 结果为 (1, 3, 5)
print(a[::-1])  # 结果为 (6, 5, 4, 3, 2, 1, 0)
print(a[:0:-1])  # 结果为 (6, 5, 4, 3, 2, 1)
a = (0, 1, 2, 3, 4, 5, 6)
print(len(a))  # 结果为7
a = (1, 2, 3)
print(1 in a)  # 结果为 True
print(4 not in a)  # 结果为 True
a = (1, 2, 3, 2, 2)
print(a.index(2))  # 结果为 2
print(a.index(4))  # 报错
a = (1, 2, 3, 2, 2)
print(a.count(2))  # 结果为 3

 

posted on 2020-01-02 15:01  焚音留香  阅读(556)  评论(0编辑  收藏  举报