Python Day55(使用列表的一部分)

python大大的图

书本4.4——使用列表的一部分

作业图

一,切片

切片不是列表特有,python中的有序序列如字符串、元组都支持切片。切片的返回结果类型和切片对象类型一致,返回的是切片对象的子序列,如:列表切片返回一个列表,字符串切片返回字符串。

函数原型:

list[start : end : step]

参数含义:

start:切片起点索引,默认从0开始。

end:切片终点索引,但切片结果不包括终点索引的值。

step:步长,默认是1。

具体的几个例子:

start

end

step

截取列表全部

二,遍历列表

之前做过一些for循环语句整理

这里又可以增加一些列表部分的内容了,即遍历列表的部分元素,在for循环语句中使用切片。

遍历前四名队员

遍历前三名队员

可以发现与前面的切片输出不同,这里索引到了切片的最后一个位置,包括了end这个元素。

三,复制列表

复制列表的四种简单方法:

1、a[ : ]

2、list(a)

3、a*1

4、copy.copy(a)

a[ : ]
list(a)
a*1

copy.copy(a)

以上方法只适用于简单列表,也就是列表中的元素都是基本类型,如果列表元素还存在列表的话,这种方法就不适用了。原因就是,象a[:]这种处理,只是将列表元素的值生成一个新的列表,如果列表元素也是一个列表,如:a=[1,2,3,[6]],那么这种复制对于元素[6]的处理只是复制[6]的引用,而并未生成 [6]的一个新的列表复制。

简单复制方法(一)

简单复制方法(二)

以上四种简单复制方法都没能生成[6]的一个新的列表的复制。使用 a[:], list(a), a*1, copy.copy(a)四种方式复制列表结果都可以得到一个新的列表,但是如果列表中含有列表,所有b, c, d, e四个新列表的子列表都是指引到同一个对象上。

copy.deepcopy(a)

使用copy.deepcopy(a)方法得到的新列表 f才是包括子列表在内的完全复制。

copy拷贝一个对象,但是对象的属性还是引用原来的,deepcopy拷贝一个对象,把对象里面的属性也做了拷贝,deepcopy之后完全是另一个对象了。

当需要一个新的列表,并且对这个新的列表进行操作,同时不想影响原来的列表时,就可以使用这个方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近在写个性化推荐的论文,经常用到Python来处理数据,被pandas和numpy中的数据选取和索引问题绕的比较...
    shuhanrainbow阅读 4,729评论 6 19
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,849评论 1 118
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,959评论 0 5
  • 先决条件 在阅读这个教程之前,你多少需要知道点python。如果你想从新回忆下,请看看Python Tutoria...
    舒map阅读 2,767评论 1 13
  • 今天是新的开始,记住今天2017年12月16日,新的洗礼,我注册了简书,加入了007不写就出局,开始我第一篇的写作...
    小饼早餐阅读 518评论 1 4

友情链接更多精彩内容