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,写成这样:

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

  • 相关阅读:
    log4j日志配置
    map和java对象的转换方法
    阿里巴巴的json使用时的一些转换方法
    HttpClient发送Post和Get请求
    IT网站导航
    python学习
    git解决冲突
    协程
    Python实现协程
    异步任务神器 和定时任务Celery
  • 原文地址:https://www.cnblogs.com/itfat/p/7341160.html
Copyright © 2011-2022 走看看