Python元组

元组与列表相似,只不过元组内的值不能修改,但是可以整体重新赋值;

关于元组的几个要点:

1.元组的小括号也可以省略(Python就是这么无下限),但是逗号不能再省了:

tuple_1 = "a", "b", "c", "d" 
print(type(tuple_1))
#输出:
<class 'tuple'>

#当然这样也可以:
tuple_1 = "a", #注意逗号不能省,否则tuple_1就变成字符串
print(type(tuple_1))
#输出:
<class 'tuple'>

2.对元组的操作基本和列表相似,除了元组内的元素不能动之外,对元组的整体删除、修改都是允许的,其它操作例如切片、拼接、+、*、等都与列表完全一样,这里不再介绍,可以看我上一篇关于列表的介绍,但是要注意像append、pop、insert等这种在元素层次上的方法在元组中是不能用的;

3.深刻理解元组的元素不变的含义:
看一个例子:

tuple_1 = ('a','b',[1,2,3])
for x in tuple_1[2]:
    tuple_1[2][x-1] = 0 #注意这里x从1开始,所以要减1
print(tuple_1)
#输出:
('a', 'b', [0, 0, 0])

在这个例子中:元组tuple_1中的元素变了,但其实变得并不是元组内的元素,变的是列表中的元素,元组中指向的list仍旧是没有变的,你可以这么理解,元组内的元素所指向的地址是不允许修改的,但地址映射的对象本身是可以修改的,在这个例子中,list的地址仍旧没变,但内容却被修改了,所以不要被这个迷惑了;

再看一下代码解释吧:

list_1 = [1,2,3]
print(id(list_1))
print(id(list_1[0]))
tuple_1 = ('a','b',list_1)
for x in tuple_1[2]:
    tuple_1[2][x-1] = 0
print(id(list_1))
print(id(list_1[0]))
#输出:
49249136
1354487984
49249136
1354487968

4.元组虽然不能修改元素,但是通过元组的切片、以及拼接等操作可以达到简洁修改元组元素的目的;

部分内容(不限于本文)参考自:

菜鸟编程
廖雪峰的官方网站
c语言中文网
以及《Python编程-从入门到实践》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值