元祖

# 元组:
# 本质:一种不可变的、有序集合
# 与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])

 

posted @ 2019-07-26 19:59  巨菜的小鸟  阅读(140)  评论(0编辑  收藏  举报