我的PYTHON学习笔记-元组

版本:python3.7。

笔记来源于B站小甲鱼教程

元组

 与列表一样可以容纳多种类型的对象
 

>>> rhyme=(1,2,3,4,5,"上山打老虎")
>>> rhyme
(1, 2, 3, 4, 5, '上山打老虎')
 #不带括号也可以
>>> rhyme=1,2,3,4,5,"上山打老虎"

>>> rhyme
(1, 2, 3, 4, 5, '上山打老虎')
 #同样可以用下标获取元素
>>> rhyme[0]
1
>>> rhyme[-1]
'上山打老虎'

与字符串一样拥有不可变的特性

修改元组会报错

>>> #修改元组会报错:
>>> rhyme[1]=23
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    rhyme[1]=23
TypeError: 'tuple' object does not support item assignment
>>> #元组修改报错:TypeError: 'tuple' object does not support item assignment

元组支持切片操作

>>> #元组支持切片操作:
>>> rhyme[:3]
(1, 2, 3)
>>> #用法与列表相同
>>> rhyme[::2]
(1, 3, 5)
>>> rhyme[::-1]
('上山打老虎', 5, 4, 3, 2, 1)
>>> #切片操作之后导出一个新的对象

获取索引、拼接、重复

#数数和获取索引值:
>>> nums=(3,4,56,1,3,5,6)
>>> nums.count(3)
2
>>> 
>>> heros=("冰淇淋","鸡肉卷","三号楼")
>>> heros.index("三号楼")
2
>>> #拼接和重复(加、乘运算):
>>> s=(1,2,3)
>>> t=(4,5,6)
>>> s+t
(1, 2, 3, 4, 5, 6)
>>> s*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> s*t#这个是不对的
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    s*t
TypeError: can't multiply sequence by non-int of type 'tuple'

元组的嵌套

>>> s=(1,2,3)
>>> t=(4,5,6)
>>> w=s,t#嵌套
>>> w
((1, 2, 3), (4, 5, 6))
 #以上为嵌套

>>> for each in s:
	print(each)

	
1
2
3
 #嵌套循环:
>>> for i in w:
	for each in i:
		print(each)

		
1
2
3
4
5
6
>>> s=(1, 2, 3, 4, 5, 6)
>>> [each*2 for each in s]#使用列表推导式
[2, 4, 6, 8, 10, 12]
>>> (each*2 for each in s)#圆括号行不行呢?
<generator object <genexpr> at 0x0000025B57C80448>
 #报错了,所以列表推导式只能用方括号
>>> x=(520,)
>>> x
(520,)
>>> type(x)
<class 'tuple'>
 #生成元组称为元组的打包:
>>> t=(123,"fishc",3.14)
>>> t
(123, 'fishc', 3.14)
 #一次性复制为多个变量名的行为称为解包:
>>> x,y,z=t
>>> x
123
>>> y
'fishc'
>>> 
>>> z
3.14
 #一次性多个赋值也适用于列表
>>> t=[123,"fishc",3.14]
>>> x,y,z=t
>>> x
123
>>> y
'fishc'
>>> z
3.14
>>> a,s,d,f,g="fishc"#也试试将字符串赋值给多个变量名
>>> a
'f'
>>> s
'i'
>>> d
's'
>>> f
'h'
>>> g
'c'
#规则:赋值号左边的变量名数量必须跟右侧序列的元素数量一致,否则报错:
>>> a,s,d="fishc"
Traceback (most recent call last):
  File "<pyshell#81>", line 1, in <module>
    a,s,d="fishc"
ValueError: too many values to unpack (expected 3)
#或者进行容错处理:
>>> a,s,*d="fishc"#添加*,将剩下的字符赋值给d变量
>>> a
'f'
>>> s
'i'
>>> d    #将剩下的字符赋值给d变量
['s', 'h', 'c']
>>> 
>>> #python多重赋值功能:
>>> x,y=10,20
>>> x
10
>>> y
20
#背后逻辑:先将元组进行打包,再将元组进行解包

>>> #元组里包含列表是可以被修改的:
>>> s=[1,2,3]
>>> t=[4,5,6]
>>> w=(s,t)#创建含列表的元组
>>> w
([1, 2, 3], [4, 5, 6])
>>> w[1][2]=12#进行赋值修改
>>> w
([1, 2, 3], [4, 5, 12])
>>> #所以如果指向一个列表,那么就可以依然修改列表中的元素

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值