美文网首页
Python Day55(使用列表的一部分)

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

作者: TianAff | 来源:发表于2017-07-28 10:59 被阅读0次
    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之后完全是另一个对象了。

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

    相关文章

      网友评论

          本文标题:Python Day55(使用列表的一部分)

          本文链接:https://www.haomeiwen.com/subject/qjlxlxtx.html