元组

本文介绍了Python中的元组,它是一种不可变序列,常用于存储不可变数据。元组可以通过()`创建,注意空元组至少包含一个逗号。元组内的列表虽然可变,但元组本身不可变。元组解包需匹配元素数量,常见操作包括索引、切片、成员操作、迭代以及与`enumerate`、`zip`函数的配合使用。此外,还讨论了元组的计数和排序等应用。
摘要由CSDN通过智能技术生成

元组

参考链接:python:元组【全用法】 来源:csdn

  • 元组: 元组是一个不可变序列,可以包含任意数据类型,其表现形式为 tuple(一般当我们希望数据不改变时,我们使用元组,其它情况下基本使用列表)
  • 元组创建: 使用 () 进行创建
  • 注意:
    • 元组不是空元组至少包含一个(,),当不包含逗号时,其类型将不是元组,当元组不是空元组时括号可以省略
#元组只有一个元素时至少包含一个(,)
t1=(1)
t2=('a')
t3=([1,'t'])
print(type(t1),type(t2),type(t3))
# 运行结果:
# <class 'int'> <class 'str'> <class 'list'>

# 更正
t1=(1,)
t2=('a',)
t3=([1,'t'],)
t4=(1,2,'a','b',t3)    #同一元组可包含多种数据类型
print(type(t1),type(t2),type(t3),type(t4))
# 运行结果:
#  <class 'tuple'> <class 'tuple'> <class 'tuple'> <class 'tuple'>
  • 元组不可变,但其内的列表可变,也可以直接重新赋值
#元组不可变
t1=('s','a')
t1.append('d')
#结果报错
#    t1.append('d')
#    AttributeError: 'tuple' object has no attribute 'append'

#其内列表可变,也可以直接赋值
t1=('s','a')

l=[1,2,3]
t1=([1,'t'],)              #元组重新赋值
t2=(1,2,'a','b',t1,l)      #多种数据类型
print(t2)

s='a','b','c'              #当含多个元素时,元组可省略()
print(type(s))
t1[0].append(s)           #元组内集合元素改变
l.append("a")             #改变集合内元素
print(t2)                 #查看结果

# 运行结果
#      (1, 2, 'a', 'b', ([1, 't'],), [1, 2, 3])
#      <class 'tuple'>
#       (1, 2, 'a', 'b', ([1, 't', ('a', 'b', 'c')],), [1, 2, 3, 'a'])

  • 元组解包是指将元组中的每一个元素都赋值给一个变量,但变量数应该和元组元素数量一致,否则可在一个变量前加*接收多个数组元素
#变量数和元组元素不一致时
a=(1,2,3,4)
b,c,d=a
print("b=",b)
print("c=",c)
print("d=",d)
#运行结果
#    d,b,c=a
#    ValueError: too many values to unpack (expected 3)

# 一个变量前加* 接收多个元组元素
a=(1,2,3,4)
b,*c,d=a
print("b=",b)
print("c=",c)
print("d=",d)'''
运行结果
   b= 1
   c= [2, 3]   #变量c前加*,因此c接收多个元素,其它变量只接收一个元素
   d= 4
'''
  • 元组常用操作
    • 索引与切片
t=(1,2,3,['l1','l2','l3'],'a','b','c')
print("t0=",t[0],type(t[0]))

t=(1,2,3,['l1','l2','l3'],'a','b','c')

# print("t[3][2]=",t[3][2],type(t[3][2]))
print("t[3][:2]=",t[3][:2],type(t[3][:2])) # 切元组中的列表
print("t[3]=",t[3:6],type(t[3:6]))         # 切元组元素,含左不含右

'''
运行结果:
t[3][:2]= ['l1', 'l2'] <class 'list'>
t[3]= (['l1', 'l2', 'l3'], 'a', 'b') <class 'tuple'>
'''
  • 重复与连接
l=[1,2,3]
t1=(1,'t',)
t2=(1,2,'a','b',t1,l)
print(t1*3)        # 重复
print(t2+t1)       # 元组间连接
print(t2+l)        # 元组与列表连接报错

'''
运行结果:
   (1, 't', 1, 't', 1, 't')
   (1, 2, 'a', 'b', (1, 't'), [1, 2, 3], 1, 't')
   Traceback (most recent call last):
      File "D:/eclipse/pyth/pyth/test/元组.py", line 36, in <module>
      print(t2+l)        # 元组与集合连接报错
   TypeError: can only concatenate tuple (not "list") to tuple
'''
  • 成员操作符
t2=(1,2,'a','b')
print(1 not in t2)
print('c' in t2)
'''
运行结果:
False
False
'''
  • 迭代
t2=(1,2,'a','b')
for s in t2:
    print(s,end=' ')
'''
运行结果:
1 2 a b 
'''
t1=('a','b','c')
t2=(1,2,3)
for i,s in enumerate(t1,start=1):
    print('第%d次遍历,元素为%s'%(i,s))
print(tuple(enumerate(t1,1)))
'''
运行结果:
   第1次遍历,元素为a
   第2次遍历,元素为b
   第3次遍历,元素为c
   ((1, 'a'), (2, 'b'), (3, 'c'))
'''
t1=('a','b','c')
t2=(1,2,3)
t3=['aa','bb','cc']
for i in zip(t1,t2,t3):
     print(i,end=' ')
'''
运行结果:
('a', 1, 'aa') ('b', 2, 'bb') ('c', 3, 'cc') 
'''   

  • 元组常见用法
    • 计数
t1=('a','b','c','c')
print(t1.count('c'))
print(t1.index('b'))
'''
运行结果:
2
1
'''  
  • 排序
t1=('b','a','2','1')
print(sorted(t1))
print(t1.sort)         #此方法报错
'''
运行结果:
    print(t1.sort)
   AttributeError: 'tuple' object has no attribute 'sort'
   ['1', '2', 'a', 'b']
'''  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值