特点
与列表不同的是,当元祖定义后不能再修改。
元祖可以是不同类型的数据。
元祖定义时使用小括号。
定义
变量名称 = (元素, 元素, ······, 元素)
空元祖:名称 = ( ) 或者 变量名称 = tuple( )
元祖的类型
# 元祖
tuple_1 = (12)
tuple_2 = (12,)
tuple_3 = (12, "dka", 5)
print(tuple_1, type(tuple_1))
print(tuple_2, type(tuple_2))
print(tuple_3, type(tuple_3))
''' 输出:
12 <class 'int'>
(12,) <class 'tuple'>
(12, 'dka', 5) <class 'tuple'>
'''
可知数据类型为tuple,但是当只有一个数据时,必须在末尾加“,”,不然会定义为其他类型
元祖的嵌套和索引
和列表一样元祖有嵌套和索引的功能
q_tao = ((12, 2, "hda"), (22, 5, "ash"))
print(q_tao, type(q_tao))
# 取出22,与列表的索引方法一样
print(q_tao[1])
print(q_tao[-1][0])
'''输出:
((12, 2, 'hda'), (22, 5, 'ash')) <class 'tuple'>
(22, 5, 'ash')
22
'''
# 与列表一样,可以打印一个范围的元素,如
元祖的操作
元祖被定义后便不能更改,使用少了很多功能
但是有些奇怪的现象,比如:
test = (12, 55, [22, "diha"])
test[2][0] = "fs"
print(test)
'''输出:
(12, 55, ['fs', 'diha'])'''
# 为什么可以更改?
在这种情况下,看上去是该了tuple,其实是该了list,另外还可以用del函数来删除元祖中列表的元素。
访问元祖
test = (12, 5, 6 "da")
print(test[0])
''' 输出:
12'''
# 但是
# test[0] = 0,改变元素是错的
查找元祖的元素
test = (12, 5, 6 "da")
print(test.index("da"))
'''输出
3'''
统计元祖某个元素的数量
test = (12, 5, 12, 6, "da")
print(test.count(12))
''''输出
2'''
或者计算元祖的元素个数
test = (12, 5, "ds")
a = len(test)
'''输出
3'''
和数列一样支持while和for的循环