介绍
元祖和列表都是有序数列,列表是用 [ ],元祖使用()
元祖不同的地方在于创建后不能修改
注意:当元祖中只有一个元素的时候,要加上逗号(一个括号会被当成运算符使用)
比如:
- (123, ) 表示的是一个元组,元组中包含一个整数 123
- (123) 表示的是一个带括号的表达式,整数 123 嵌入括号中
元祖的基本操作方法有 统计,查找,嵌套修改,切片,in ,not in
1,统计
代码语言:javascript复制>>> tuple = ("alex","egon","hello","apple","alex","alex")
>>> tuple.count("alex")#统计元素“alex”的个数
3
>>> len(tuple)#统计元素个数
6
>>>
2,查找
代码语言:javascript复制>>> tuple = ("alex","egon","hello","apple","alex","alex")
>>> tuple.index("alex")#查找元素在元祖中的位置,多个重复元素只返回第一个的位置0
>>> tuple[1]#根据索引查找元素'egon'
3、切片 [ : : ] 取值
- 和列表一样,元组也可以切片
- 使用语法:元组[start : end : step],获取元组中在 [start, end) 范围的子元组
- 注意范围 [start, end) 包含 start,不包含 end
- step 是步长,设为 n,则每隔 n 个元素获取一次
# 切片
tup = [1, 2, 3, 4, 5, 6, 7, 8]
print(tup[:]) # 取全部元素
print(tup[0:]) # 取全部元素
print(tup[2:5]) # 取第 3 个元素到第 5 个元素
print(tup[::-1]) # 倒序取所有元素
print(tup[-3:-1]) # 取倒数第 3 个元素到倒数第 2 个元素
# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
[3, 4, 5]
[8, 7, 6, 5, 4, 3, 2, 1]
[6, 7]
4,嵌套修改
代码语言:javascript复制#元祖的元素是不可以更改的,但元素的元素就有可能是可以更改的
#元祖里边的元素如果包含列表和字典,那列表和字典是可以修改的
>>> tuple = ("alex","egon","hello","apple",["world",{"name":"lesheng"}])
>>> tuple[4].append(0)
>>> tuple
('alex', 'egon', 'hello', 'apple', ['world', {'name': 'lesheng'}, 0])
>>> tuple = ("alex","egon","hello","apple",["world",{"name":"lesheng"}])
>>> tuple[4][1]["name"]="egon"
>>> tuple
('alex', 'egon', 'hello', 'apple', ['world', {'name': 'egon'}])
>>>