元祖
# 元组: # 本质:一种不可变的、有序集合 # 与list的区别:1、与list相似(有序的集合) 2、tuple是不可变的 # 3、使用 () 创建 # 一、创建元组 # 语法格式:元组名称 = (元素1, 元素2, .....) # 1、创建一个空元组 tuple1 = () print(tuple1) print(type(tuple1)) # tuple # 2、创建一个带有至少两个元素的元组 tuple2 = (1, 2, 3) print(tuple2) print(type(tuple2)) # tuple # 3、元组中的元素的数据类型可以是任意类型的数据 tuple3 = (1, "abc", 3.14, True, None) print(tuple3) # 4、创建带有一个元素的元组 tuple4 = (100) # 这种方式创建的是100这个int类型的数字,而不是tuple类型 # 的数据,原因:小括号() 既可以表示元组,也可以是数学中的小括号(提升 # 运算符优先级),如果只是单纯的将数字用小括号括起来,优先选择数学中小括号 # 的意义。 print(tuple4) print(type(tuple4)) # <class 'int'> # 创建带有一个元素的元组,在第一个元素后面要加一个,(逗号)消除()小 # 括号的歧义即可。 tuple5 = (100, ) print(type(tuple5)) # tuple print(tuple5) # 二、元组的访问 # 1、取值 # 语法格式: 元组名[index] index从0开始,不能越界 tuple6 = (1, 2, 3, 4, 5, 6, 7) print(tuple6[2]) # print(tuple6[20]) # IndexError: tuple index out of range print(tuple6[-1]) # 2、不能修改元组中的元素 原因:元组是不可变类型数据 #tuple6[1] = 100 # TypeError: 'tuple' object does not support item assignment print(tuple6) # 3、删除元组 (实际删除的是变量) del tuple6 # print(tuple6) # NameError: name 'tuple6' is not defined # 三、元组的操作 # 1、元组组合 + tuple7 = (1, 3, 4) tuple8 = (1, 2) tuple9 = tuple7 + tuple8 print(tuple9) # 2、元组元素的复制 * tuple10 = (1, 2) print(tuple10 * 5) print(tuple10) # 3、元组的切割 # 语法格式: 元组名称[[起始下标]:[结束下标][:[递增基数]]] tuple1 = (0, 1, 2, 3, 4, 5, 6, 7) # 从头开始截取,截取到数字4 tu1 = tuple1[:5] print(tu1) # 从数字3开始,截取到末尾 tu2 = tuple1[3:] print(tu2) # 截取所有 tu3 = tuple1[:] print(tu3) # 隔一取一 tu4 = tuple1[::2] print(tu4) # 反转元组 tu5 = tuple1[::-1] print(tu5) # 从数字3开始,截取到数字5 tu6 = tuple1[3:6] print(tu6) # 4、判断变量或常量是否在元组中 in not in tuple2 = (1, 2, 3, 4, 5) print(1 in tuple2) # T print(10 in tuple2) # F # 5、修改元组 tu = (1, 2, [1, 2, 3, 4, 5], 4, 5) # tu[0] = 100 # 错误 # tu[2] = [2, 3, 4] # 错误 tu[2][0] = 100 print(tu) # 元组中的元素对应的内存地址不能再次更改,但如果元组中的元素为可变 # 数据类型,是可以更改可变类型数据中的元素的。 # 四、元组的方法 # 1、返回元组的元素个数 len(tuple) tu2 = (1, 2, 3, 100, 200, 555, 21) print(len(tu2)) # 2、返回元组的最大值 max(tuple) print(max(tu2)) # 3、返回元组的最小值 min(tuple) print(min(tu2)) # 4、遍历元组 for i in tu2: print(i) for index in range(len(tu2)): print(tu2[index]) # 五、数据类型转换 # list -> tuple tuple() li1 = [1, 2, 3] tu1 = tuple(li1) print(tu1) # tuple -> list tu2 = (100, 200) li2 = list(tu2) print(li2) # string -> tuple tuple() str1 = "abcdef" tu3 = tuple(str1) print(tu3) # string -> list list() str3 = "qwert" li4 = list(str3) print(li4) # tuple -> string tu5 = (1, 2, 3) str4 = str(tu5) print(str4) # "(1,2,3)" print(type(str4)) # str # list -> string li5 = [1, 2, 3] str4 = str(li5) print(str4) # "[1,2,3]" print(type(str4)) # str # 六、二维元组 tu = ((1, 2, 3), (4, 5, 6), (7, 8, 9)) # 遍历二维元组 for i in tu: print(i) for j in i: print(j) # 使用下标的方式遍历二维元组 for i in range(len(tu)): for j in range(len(tu[i])): print(tu[i][j])