12.元组

tuple(元组)

元组同列表一样,都是可以封闭多个、不同类型的元素在内

但最大的不同点在于:

  • 元组一旦定义完成,就不可修改 (可以修改元组内部list列表的内部元素)

适合用于当程序内需要封闭数据,又不希望数据被篡改

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

字面量: [元素1, 元素2, 元素3, ...]

定义变量: 变量名称 = [元素1, 元素2, 元素3, ...]

定义空元组:

  • 变量名称 = ()
  • 变量名称 = tuple()
# 定义元组
(1, "Hello", True)

my_tuple = (1, "Hello", True)
my_tuple2 = tuple()
my_tuple2 = my_tuple

print(my_tuple2)

# 定义单个元素的元组  单个元素注意必须带有逗号,否则不是元组类型
my_tuple3 = ("hello")
print(type(my_tuple3))   # 字符串类型
my_tuple3 = ("heelo", )
print(type(my_tuple3))   # 元组类型

# 元组的嵌套
my_tuple4 = (1, "Hello", True, (4, 5, 6))
print(my_tuple4)

# 读取元组数据 取出
print(my_tuple4[-1][-1])
print(my_tuple4[1])
(1, 'Hello', True)


(1, 'Hello', True, (4, 5, 6))
6
Hello

tuple(元组)的相关操作

  • index() 查找某个数据,如果数据存在返回对应的下标,否则报错
  • count() 统计某个数据在当前元组出现的次数
  • len() 统计元组内的元素个数
my_tuple = (1, "Hello", True, (4, 5, 6), (4, 5, 6))

my_tuple.index("Hello")

my_tuple.count((4, 5, 6))

len(my_tuple)
5
# 元组的while循环遍历
def tuple_while_func():
    """
    使用while循环遍历元组的演示函数
    :return: None
    循环控制的变量通过下标索引来控制,默认0
    每一次循环将下标索变量+1
    循环条件:下标索引变量 < 元组的元素数量
    """
    my_tuple = (1, "Hello", True, (4, 5, 6), (4, 5, 6))
    index = 0
    while index < len(my_tuple):
        print(my_tuple[index])
        index += 1
tuple_while_func()
1
Hello
True
(4, 5, 6)
(4, 5, 6)
# 元组的for循环遍历
def tuple_for_func():
    my_tuple = (1, "Hello", True, (4, 5, 6), (4, 5, 6))
    for i in my_tuple:
        print(i)
tuple_for_func()
1
Hello
True
(4, 5, 6)
(4, 5, 6)
# 尝试修改元组的内容
my_tuple = (1, "Hello", True, (4, 5, 6), [4, 5, 6])

# my_tuple[1] = "World"  # TypeError: 'tuple' object does not support item assignment

#my_tuple[3][1] = 8  # TypeError: 'tuple' object does not support item assignment

my_tuple[4][0] = 8    # 元组里面列表元素可以更改
print(my_tuple)

my_tuple[4].pop(0)
my_tuple[4].append(20)
print(my_tuple)
(1, 'Hello', True, (4, 5, 6), [8, 5, 6])
(1, 'Hello', True, (4, 5, 6), [5, 6, 20])