元组与列表相似,不同之处在于它的元素是不可改变的,不可进行增删改的,也就是说元组一旦创建,便不可以编辑(增删改)其中的元素。虽然元素不允许删除,但可以使用del语句来删除整个元组。

13.1 元组声明
元组可通过小括号()或tuple()进行声明。里面没有元素时,为空元组。元组元素可以同时存在不同的数据类型。用()声明元组时,如果只有一个元素,后面要加逗号, 否则会被当作运算符处理。
# 用()声明一个空元组 t = () print(type(t), t) # 用tuple()声明一个空元组 t = tuple() print(type(t), t) # 支持不同数据类型 t = ("化学", 100, 25.68) print(t) # 只有一个元素,记得加, t = ("中文",) print(t)
13.2 新增
元组中的元素值是不允许修改的,但我们可以通过+号对元组进行连接组合。
# 两个元组拼接 t1 = (1, 2, 3) t2 = (4, 5, 6) t1 += t2 print(t1)
13.3 删除
不可以对元组中的元素值进行删除,但可替换整个元组内容,还可以用del tuple 删除整个元组,删除后不可再访问。
# 元组替换内容 n1 = (5, 6, 7, 8) n2 = (1, 2, 3) n1 = n2 print(n1) # 删除整个元组后,不可再访问 del n1
13.4 访问
用下标或区间范围可进行元素访问。指定的下标不存在时,会报越界错误。第1个元素下标为0,最后1个为-1。通过区间范围可截取子元组。
# 用下标访问元素 colors = ("Red", "Yellow", "Blue", "Orange") print(colors[0]) print(colors[-1]) # 用区间访问元素 color = colors[1:3] print(color)
可用in或not in关键字判断元素是否存在。
# 用in 用in判断是否存在 lang = ("Chinese", "English", "French", "German") if "Japanese" in lang: print("存在") else: print("不存在")
用index(obj) 从元组中找出某个值的第一个匹配项的索引位置,如果找不到,会报错。count(obj) 统计某个元素在元组中出现的次数。max(tuple) 返回元组元素最大值,min(tuple) 返回元组元素最小值。
# 查找指定元素的第一个下标 number = (6, 6, 7, 8) i = number.index(6) print(i) # 统计元素出现的次数 n = number.count(8) print(n) # 获取元素最大值 max_v = max(number) print(max_v) # 获取元素最小值 min_v = min(number) print(min_v)
13.5 遍历
在遍历元组时,经常会用到元组长度,可用len(tuple) 计算元组元素个数(既元组长度)。如果只是遍历元素的内容,可直接用for循环,如果通过下标的方式访问元素,则可通过rang()函数,如果同时需要下标和元素值,可使用enumerate()函数。
# 直接遍历元素 number = (1, 3, 1, 4) for n in number: print(n) # 通过下标访问元素 length = len(number) for i in range(length): print(number[i]) # 同时获取下标和元素 for i, n in enumerate(number): print(i, n)
13.6 排序
可用sorted()函数,对元组内容进行排序,可获取排序后的元组内容。排序要求元组内容是针对同一类型的。
# 元组升序排列 number = (1, 5, 2, 3, 4) new = sorted(number) print(new) # 元组降序排列 new = sorted(number, reverse=True) print(new)
13.7 转换
可通过tuple()方法将字符串、列表、集合转成元组。
# 字符串转为元组 s = "string" t1 = tuple(s) print(t1) # 列表转为元组 lst = ["a", "b", "c"] t2 = tuple(lst) print(t2) # 集合转为元组 set1 = {1, 3, 4} t3 = tuple(set1) print(t3)
如果元组内容全是字符串,可直接通过join()方法将元组转成字符串,如果内容有其他数据类型,通过join(map(str, tuple))的方式转换。
# 元组(全字符串内容)转为字符串 t = ("O", "K", "!") print("".join(t)) # 数字内容 t = (10, 8.6) print("".join(map(str, t)))


还没有评论,来说两句吧...