元组(tuple)
元组是Python的基本数据类型之一,与列表类似,不同之处在于元组的元素不能增加、删除、修改。
文章目录
提示:以下是本篇文章正文内容,以下示例仅供参考。
一、创建元组
1.使用一对圆括号来表示空元组: ()
2.使用一个后缀的逗号来表示单元组: a, 或 (a,)
3.使用以逗号分隔的多个项: a, b, c or (a, b, c)
4.使用内置的 tuple(): tuple() 或 tuple(iterable),转为元组
- 一般创建元组的方法
tuple1 = () # ()
tuple11 = tuple() # ()
tuple2 = 'a', # ('a',)
tuple21 = ('a',) # ('a',)
tuple3 = 'a','b','c' # ('a','b','c')
tuple31 = ('a','b','c') # ('a','b','c')
tuple4 = 12345,54321,'hello!' # (12345,54321,'hello!')
扩展1:漏掉逗号,数据类型不为元组
# 漏掉逗号
t1 = (1)
print(type(t1)) # <class 'int'>
t2 = ('a')
print(type(t2)) # <class 'str'>
# 加上逗号
t3 = (1,)
print(type(t3)) # <class 'tuple'>
t4 = ('a',)
print(type(t4)) # <class 'tuple'>
字典与集合的逗号情况
print(type({})) # <class 'dict'>
print(type({1})) # <class 'set'>
print(type({1,})) # <class 'set'>
扩展2:列表不加逗号,依然是列表
l1 = [1,]
print(type(l1)) # <class 'list'>
l2 = [1]
print(type(l2)) # <class 'list'>
综合 扩展1和扩展2 所述,凡是容器类型,无论内部有几个元素,尤其内部只有一个元素时,必须加上逗号,完美避开数据类型错误的情况出现。
- 元组嵌套列表、元组嵌套元组
# 元组嵌套列表
v = ([1,2,3],[3,2,1])
# 以下两行代码为,元组嵌套元组
a = 12345,54321,'hello!'
b = a,(1,2,3,4) # ((12345, 54321, 'hello!'), (1, 2, 3, 4))
- 转换为元组
a = tuple('abc')
b = tuple([1,2,3])
二、索引与切片(取值)
元组索引与切片跟字符串和列表相同,这里不多介绍。
1.截取单个元素:tuple[index]
t = (11,22,33)
print(t[1]) # 22
2.切片(截取一组数据):tuple[::]
n = (1,2,3,4,5)
print(n[0]) # 1
print(n[1:2]) # (2,)
print(n[::2]) # (1, 3, 5)
print(n[::-1]) # (5, 4, 3, 2, 1)
三、查找指定元素的下标:tuple.index(ele)
tuple.index(x):x为要查找的索引下标
tup = ('a','b','c','d','e','f')
print(tup.index('d')) # 3
四、统计长度:len()
t = (1,2,3,4,5,6)
print(len(t)) # 6
五、统计指定元素在元组中出现的次数:count()
print((1,4,3,4,7).count(4)) # 2
六、向元组中的列表,添加新值:append()
"""
元组内部元素不能修改,内存地址不变,如果元素的元素是可变类型,那么元组中的元素值可以修改。
一般情况下,元组的值元素值不能被修改,但元组里面的列表是可以修改,即,元组嵌套列表,可以修改元组中嵌套列表。
"""
# 元组的第一层不能增删改,但可查,元组的第二层没有要求(要看数据,如果第二层是不可变类型依然不能增删改)
t = (11, 22, 33, [44, 55],)
t[3].append(66)
print(t) # (11, 22, 33, [44, 55, 66])
七、for循环:遍历取值
t = 'a','b','c','d','e'
# 方法一:
for item in t:
print(item)
# 方法二:
for i in range(len(t)):
print(t[i])
八、拆包:将容器的元素提取来,并赋值给变量
# 这个用专业名词就是叫做元组的拆包
a,b = 1,2
print(a,b) # 1 2
a,b = ('hello','world')
print(a,b) # hello world
a,b = ['hello','world']
print(a,b) # hello world
a,b = {'name':'张三','age':19}
print(a,b) # name age