元组
类似列表, 是一种容器, 与列表不同的一点是: 列表可以修改, 元组一级元素不可以,强行修改会报错: TypeError: ‘tuple’ object does not support item assignment
元组也是有序的, 有索引, 索引从0开始,索引不重复, 可以利用索引进行查询元素
注意: 创建元组不能使用 tuple命名(tuple是个内置函数), 可以使用 tuple1, tuple2, t1
元组命名: 元组使用括号() (列表使用[]), 中间每个元素使用 , 隔开
-
创建元组
# 1.创建一个空元组 tuple1 = () print(tuple1, type(tuple1)) # 2.怎么创建非空的元组? tuple2 = ("张", "王", "李赵", 1, 2, 3, 4, True, False, [1, 2, 3, 4], (1, 2)) print(tuple2) # 出题: (1) 是整型 相当于数字 1. 而 (1,) 是一个元组,里面只有一个元素 tuple3 = (1,) print(tuple3, type(tuple3))
-
访问元组元素
# 3.查看元组中的元素 # 通过索引来查看元素 handsome_boys = ("岳云鹏", "雷佳音", "宋小宝", "王迅", "黄渤", "孙红雷") print(handsome_boys[0]) # 取负值索引, 倒着查询 print(handsome_boys[-1]) # 列表可以切片,得到是列表; 元组也可以切片,得到是元组 hd_boys = handsome_boys[1:4] print(hd_boys) # 4.切片, tuple1[开始位置:结束位置(取不到): 步长(每几个取一个)] hd_boys = handsome_boys[1:4:2] print(hd_boys) # 如何查询元组中所有的元素? 使用for循环, 遍历元组, 查询所有的元素 for t in handsome_boys: print(t) # 获取元组的长度 length = len(handsome_boys) print(length) # range(开始位置, 结束位置), 左闭右开. 循环从0开始,一直到len(元祖) - 1 for i in range(0, length): t = handsome_boys[i] print(t) # 使用while循环遍历元组 print("----------------------------------") index = 0 while index < length: t = handsome_boys[index] print(t) index += 1 # enumerate() 使用枚举函数, 来得到元组的索引和值 for index, value in enumerate(handsome_boys): print("%d - %s" % (index, value))
-
元组中用到的函数
# 元组中用到的函数 # index(): 元组的index函数用来获取元组内元素的索引值, 括号中填写元素的值. 当元组中有多个重复的元素, 默认只返回第一个元素的索引值. # 括号中第一个位置填写元素值, 第二个位置填写开始查询的索引, 第三个位置填写结束元素的索引. 如果指定索引区间没有查找的元素会报错的. tuple4 = ("鲁班1号", "鲁班2号","鲁班3号","鲁班4号","鲁班23号","鲁班234号","鲁班1111号") index = tuple4.index("鲁班23号", 5, 8) # 指定查询元素索引范围 print(index) # count(): 用来计算元组中元素的个数, 括号中填写要计算个数的元素值. c = tuple4.count("鲁班2号") print(c) # TypeError: 'tuple' object does not support item assignment # tuple4[2] = 12 # print(tuple4) # 元组的计算 t = (1, True, "张大大", "-----", [1, 2, 3]) print(t * 3) # 乘法 * 会让元组中元素翻倍 print(t + t) # 加法 + 会让相加的元组, 元素放到前一个元组中, # 结合成员判断 if 元素 in 元组,列表,字符串 if "张大大" in t: print("张大大在元组中")