zoukankan      html  css  js  c++  java
  • 列表的使用2,深COPY和浅COPY,循环列表,步长切片

    name2=names.copy()

    下面我看几种奇怪的现象:

    首先把源列表copy以后,把源列表第2个数值修改。那么没毛病。

    如果源列表里,还包含了一个子列表:这也没毛病

    如果我们这个时候修改子列表的数值。我们来看一个神奇的现象:

    copy是一种浅COPY,它只会COPY第一层的数据,而不会深入COPY。只会COPY子列表的内存指针,内存地址。

    如果你不用COPY的方法,那问题会更严重:

    结果是这样的,连浅COPY都不如:相当于只把列表的内存地址复制了一下:

    简单来说就是这种情况。

    但是如果是数字或者字符串变量,就不会只把内存地址COPY一下结束,数字或者字符串变量是真正的COPY一份。请注意!

    如果你想深COPY一份列表,可以用下面的方法:导入COPY模块,但是要注意copy模块也有两种方法,一个浅COPY(跟之前的names.copy()是一个道理),如下图:

    COPY模块还有一个深COPY,deepcopy

    还可以用循环的方法来打印列表的数值:

    打印奇数的数值:

    也可以省略0和-1,写成这样:

    打印全部的数值,也可以这么写:

  • 相关阅读:
    8.1 管道符| 使用技巧
    7.1 elementui的radio无法选中问题
    2.0 es6数组操作
    小练习-双数日期
    匿名函数、三元表达式、列表生成式
    sys.argv
    常用模块 os,sys,
    Python操作数据库
    Python time模块
    加密模块hashlib
  • 原文地址:https://www.cnblogs.com/itfat/p/7341160.html
Copyright © 2011-2022 走看看