在Python中,常用的数据容器主要有列表,元组,字典,集合
特点:
元组(tuple):是一种有序的不可变容器,可以保存任意类型的数据。元组使用圆括号()来表示,每个元素之间用逗号(,)分隔。
语法:my_tuple=()
也可以省略小括号,使用,号分割
示例:
# 定义元组
tuple1 = () # 空元组
tuple2 = (1, 2, 3, 4)
tuple3 = ('a', 'b', 'c')
tuple4 = 1, 'hello', [1, 2, 3], {1, 2, 3}
print(type(tuple1)) # <class 'tuple'>
print(type(tuple2)) # <class 'tuple'>
print(type(tuple3)) # <class 'tuple'>
print(type(tuple4)) # <class 'tuple'>
取值:my_tuple[索引值] 返回一个当前索引的元素
说明:索引值必须在元组长度范围,否则报错IndexError: tuple index out of range
切片:my_tuple[startIndex:endIndex:step] 返回一个新元组,不改变原元组
startIndex: 表示索引值从哪里开始,不写表示从索引0开始;
endIndex: 表示截取到索引end 位置结束,不写表示截取至最后一个元组
step: 指的是从 startIndex索引处的字符开始,每 step 个距离获取一个字符,直至 endIndex索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。
注意:startIndex<endIndex才能截取到字符或字符串,startIndex>=endIndex截取拿到永远是空元组;step可省略可为正数负数,但不可为0 ,否则报异常错误:ValueError: slice step cannot be zero
# 定义元组
my_tuple = 1, 2, 'hello', 'python', 1, 3
print(my_tuple) # (1, 2, 'hello', 'python', 1, 3)
# 取值
print(my_tuple[0]) # 1
print(my_tuple[-3]) # python
# print(my_tuple[10]) # IndexError: tuple index out of range
# 切片取子集元祖
print(my_tuple[0:3]) # (1, 2, 'hello')
print(my_tuple[0:5:3]) # (1, 'python')
# print(my_tuple[0:5:0]) # ValueError: slice step cannot be zero
# 翻转元组
print(my_tuple[::-1])
# 定义一个元组
my_tuple = 1, 2, 3
# for 循环遍历
for item in my_tuple:
print(item)
输出结果:
1
2
3
# 定义一个元组
my_tuple = "study", "python", "come on"
index = 0
while index < len(my_tuple):
print(my_tuple[index])
index += 1
输出结果:
study
python
come on
# 定义一个元组
my_tuple = "study", "python", "come on"
for index, element in enumerate(my_tuple):
print(index, element)
输出结果:
0 study
1 python
2 come on
len() 返回元组元素个数
# 定义元组
my_tuple = 'hello', 'python', 'hello', 'world', 'learning'
# len() 返回元组元素个数
len_tuple = len(my_tuple)
print(len_tuple) # 5
index(element):返回元素的索引下标值,元素必须存在于元组中,否则会报错
# 定义元组
my_tuple = 'hello', 'python', 'hello', 'world', 'learning'
# index(element):返回元素的索引下标值,元素必须存在于元组中,否则会报错
# index_err = my_tuple.index('你好世界') # ValueError: tuple.index(x): x not in tuple
hello_index = my_tuple.index('hello')
print(hello_index) # 0
count(element): 返回元素在元组中出现的次数,元素必须存在于元组中,否则会报错
# 定义元组
my_tuple = 'hello', 'python', 'hello', 'world', 'learning'
# count(element): 返回元素在元组中出现的次数,元素必须存在于元组中,否则会报错
hello_count = my_tuple.count('hello')
print(hello_count) # 2
运算符加法:连接两个元组,返回新的元组
# 定义两个元组
my_tuple1 = (1, 2, 3, 4)
my_tuple2 = (1, 1, 1, 1)
# 运算符加法:连接两个元组,返回新的元组
my_tuple3 = my_tuple1 + my_tuple2
print(my_tuple3) # (1, 2, 3, 4, 1, 1, 1, 1)
运算符加法:重复的元组内容,返回新的元组
注意:元组*正整数得到重复的一个新元组,元组*小于等于0的数返回空元组,只能元组*数字,不可以元组*元组
# 定义两个元组
my_tuple1 = (1, 2, 3, 4)
# 运算符乘法:重复的元组内容,返回新的元组
my_tuple2 = my_tuple1 * 3
print(my_tuple2) # (1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)