当前位置: 代码迷 >> 综合 >> Python-常用数据结构(元组)-Tuple
  详细解决方案

Python-常用数据结构(元组)-Tuple

热度:70   发布时间:2023-11-11 03:48:16.0

1.创建元组

# 创建元组
tuple1 = (1, 2, 'a', 'b' )
print('tuple1的值:{},tuple1的类型:{}'.format(tuple,type(tuple1)))
# 输出结果 tuple的值:(1, 2, 'a', 'b'),tuple的类型:<class 'tuple'>
# 如果创建只有一个元素的元组时,要在元素后面加上逗号 如 tuple = (1,)
tuple2 = (1)
print('tuple2的值:{},tuple2的类型:{}'.format(tuple1,type(tuple2)))
# 输出结果 tuple1的值:1,tuple1的类型:<class 'int'>   如果不加逗号,tuple1的类型时int

2.访问元组

# 访问元组
tuple1 = (1, 2, 'a', 'b' )
print('第一个元素:{},第二个元素:{}'.format(tuple1[0],tuple1[1]))
# 输出结果  第一个元素:1,第二个元素:2
print('倒数第一个元素:{},倒数第二个元素:{}'.format(tuple1[-1],tuple1[-2]))
# 输出结果  倒数第一个元素:b,倒数第二个元素:a
# 访问时下标越界会报 IndexError: tuple index out of range 异常

3.修改元组的元素值

# 修改元组里可变数据类型的元素
tuple1[2][0] = '1'
print('修改可变数据类型元素值后元组的id:{},修改后的值:{}'.format(id(tuple1), tuple1))
# 输出结果 修改元素值后元组的id:2352507580480,修改后的值:(1, 2, ['1', 'b'])# 修改元组里不可变数据类型的元素
# tuple1[0] = 3
# print('修改不可变数据类型元素后元组的id:{},修改后的值:{}'.format(format(id(tuple1), tuple1)))
# 出现异常   TypeError: 'tuple' object does not support item assignment
# 个人总结: 元组中的不可变数据类型元素不能修改,可变数据类型元素可以修改(修改后内存地址不变)

4.元组的拼接和截取

# 重复n次元组元素
tuple1 = (1, 2)
n = 2
print(tuple1*2)
# 输出结果 (1, 2, 1, 2)# 元组的切片  从下标n开始到下标m结束  包含n下标的元素但不包含m下标的元素
tuple1 = (1, 2, 3, 4, 5)
print(tuple1[1:3])
# 输出结果  (2, 3)
# 如果tuple1[1:] 则是从下标1开始(包含)截取到尾部,如果写成tuple1[:3]则是从开始截取到下标3(不包含)

5.查询

# 判断指定元素是否在元组中
tuple1 = (1, 2)
print(1 in tuple1)  # 1在tuple1中返回True 不在返回False
# 输出结果 True
print(3 not in tuple1)  # 元素不在tuple1返回True 在就返回False
# 输出结果True# 获取元组的长度
tuple1 = (1, 2, '1')
print('tuple1的长度是:{}'.format(len(tuple1)))# 获取元组中的最大值和最小值
tuple1 = (1, 2, '1')
# print('最大值:{}'.format(max(tuple)))  出现异常 not supported between instances of 'str' and 'int'
# str和int实例之间不支持,我想是不支持不同的数据类型
tuple2 = ('1', '2', '3', '4')
print('tuple2的最大值:{}'.format(max(tuple2)))
# 输出结果  tuple2的最大值:4
print('tuple2的最大值:{}'.format(min(tuple2)))
# 输出结果  tuple2的最大值:1

6.Tuple和List的相互转换

# 元组和列表之间的相互转换
tuple1 = (1, 2, 3, 4)
list1 = list(tuple1)
print('转换后获得的列表:{}'.format(list1))
# 输出结果  转换后获得的列表:[1, 2, 3, 4]tuple2 = tuple(list1)
print('转换后获得的元组:{}'.format(tuple2))
# 输出结果  转换后获得的元组:(1, 2, 3, 4)

7.二维元组

# 二维元组,其实也是简单的元组,就是元组里面还是元组
tuple1 = ((1,2,3),(22,33),(100,200,300,400))
# 访问二位元组的元素
print('一维元素:{},二维元素:{}'.format(tuple1[2],tuple1[0][1]))
# 输出结果  一维元素:(100, 200, 300, 400),二维元素:2

可以看文档了解更多和元组相关的函数 python中文文档