python tuple list_从零开始学Python-Day9-集合list和元组tuple

list

list是有序的集合,可随时添加删除元素。用中括号[]圈起来,例如

60290e451896c8c0a79efbb49dac14c7.png

在这里,花名册是一个变量,就是一个有序的list,索引排序的位置是从[0]开始,依次往后,len()函数可以统计list中元素个数:

4025d97791ccc7743f10cd703f8d5fed.png

索引的位置超出了列表的元素总数的话就会报错indexerror,最后一个元素的索引位置可以记为

索引序列还可以倒序排列,最后一个元素的位置是,依次往前数就是

25ff10ff88461c2615fafb931105a92b.png

同样,超出索引范围报错indexerror,

追加与删除

前面说了,list是个随时可以添加删除元素的有序序列

追加到末尾 append追加到指定位置 insert删除末尾元素 pop删除指定位置元素 pop替换指定位置元素直接向指定索引位置赋值

效果如下:

043c98e47d41e6f3b112541a2832ff69.png

list内部的元素可以是不同数据类型,一个list也可以作为另一个list的元素,如下,Q这个list里既有字符串,又有数值,又有布尔值;我们把之前的花名册这个序列添加到Q的末尾,最终的Q序列里面就有了四个元素,最后一个元素是另一个list序列花名册,话有点绕,但还算好理解:

7cb4aad42ab72c593821dd17a9e5283d.png

如果在Q中要取到木人张该如何操作?可以用表示,所以Q其实就是一个二维数组。

如果一个list为空,即里面没有元素,那么他的长度也就len应该等于0

d6a0905ad018ddbd5395e789c0c20bb9.png

tuple

tuple叫做元组,它跟list最大的区别就是一旦初始化就不允许再变化,所谓初始化就是给它赋值。注意这里跟list的区别,元组tuple的内容是以()括起来的,list是用[]

feb6ee729f4845463d1b1204f5918914.png

因为是不可变化的,自然就没有办法增加、删除、替换元素了。元组内元素的定位跟list一样,用[]扩住的序号表示,从第一位开始0,1,2….

c9e51c9c452c5fa7cc81a631cbbef2ba.png

tuple的不可变性强调了数据的安全性,对于不需要用户交互变化的量,最好用tuple,能不用list就不用。

空tuple和1个元素的tuple

如果需要定义一个空的tuple,可以写作()

f3b79c4f8565f65d44a3eb2b5911a7e6.png

如果是定义只有一个元素的的tuple,需要在单独元素的后面加一个逗号, 否则就变成了给花名册这个变量单独赋值,因为这里()等同于数学里的小括号,Python规定这种情况下按数学的小括号计算,那么这里就变成了赋值的作用。

dc25a4ae2913365f0027746c6c9877c9.png

换成数字更容易理解,如下,我们给t这个变量赋值为2020,和我们给t这个元组赋值为只有一个2020数值的序列,如下。可以看到当我们输出单一一个元素的元组时,Python也给我们在它后面加上了逗号,以避免与数学上的()混淆:

eb31356234d8694c2e708dfa097d5461.png

“可变的”tuple

1ec469f047adace53b12a2073244a6ec.png

可以看出,初始化的时候元组t包含了三个元素:a、b和一个list [‘A’, ‘B’]

当对t[2][0]和t[2][1]重新赋值后,看似元组t的内容发生了变化,但事实上,作为元组t,它的元素依然是a、b和最初的那个list,只不过list作为一个容器,里面的内容发生了变化,而元组本身的内容并没有变化。

这可以帮助我们理解什么是tuple元组的“不变”其实说的是,但当一个元素指向的对象是一个list,这个list是可变的。

8f51790ed1f68fc3375aefdbb59a4e23.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值