7.4 数据类型之元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

string、list 和 tuple 都属于 sequence(序列)。

7.4.1 创建格式:

tuple1 = (Value01, Value02, …)

7.4.2 常用功能

# 空元组
empty_tuple = ()    
empty_tuple1 = tuple()

# 一个元素,需要在元素后添加逗号
tup1 = (20, ) 

tuple1 = ('abcd', '1234', '1.234', 'carey')
tuple2 = (4321, 'dcba')

# 元组截取
print(tuple1)
# 输出:('abcd', '1234', '1.234', 'carey')
print(tuple1[0])
# 输出:abcd
print(tuple1[1:3])
# 输出:('1234', '1.234')
print(tuple1[2:])
# 输出:('1.234', 'carey')
print(tuple2 * 2)
# 输出:(4321, 'dcba', 4321, 'dcba')
print(tuple1 + tuple2)
# 输出:('abcd', '1234', '1.234', 'carey', 4321, 'dcba')

# 修改元组元素的操作是非法的
tuple3 = (1, 2, 3, 4, 5, 6, 7, 8)
print(tuple3)
print(tuple3[0])
# tuple3[0] = 3
# TypeError: 'tuple' object does not support item assignment

7.4.4 集合的常用方法

元组由 tuple 类代表,可以使用dir(tuple)查看该类包含哪些方法
[‘count’, ‘index’]

# count:计算tuple1中存在多少个'1234'字符串
print(tuple1.count('1234'))
# 输出:1

# index:查询tuple1中'abcd'所在索引位置
print(tuple1.index('abcd'))
# 输出:0

7.4.5 思考及动手

7.4.5.1 通过元组中的列表修改元组中的内容

已经元组中的元素无法更改,若元组中包含可以更改元素的列表,可以通过列表修改元组中的内容吗?

tuple_a = (1, '2', ['a', 'b', 1, 2])
print('原始:', tuple_a)
# 输出:原始: (1, '2', ['a', 'b', 1, 2])
print('tuple_a[2]:', tuple_a[2])
# 输出:tuple_a[2]: ['a', 'b', 1, 2]
tuple_a[2][0] = 'c'
print('修改后的:', tuple_a)
# 输出:修改后的: (1, '2', ['c', 'b', 1, 2])
posted @ 2020-05-16 21:55  f_carey  阅读(9)  评论(0编辑  收藏  举报  来源