将一个列表的数据复制到另外一个列表中。

 1 a = [1,2,3] #定义列表a
2
3 b = a[:] #将列表a的切片赋值给b,也可以理解为将b的值设置为a[:]
4
5 print(a) #打印列表a
6 print(b) #打印列表b
7
8 print(id(a)) #打印一下列表a的内存地址 140053600489344
9 print(id(b)) #打印一下列表b的内存地址 140053600514432
10
11 a.append('4') #向a列表末尾追加字符串'4'
12 print(a) #打印列表看看
13 print(id(a)) #打印列表a的内存地址 140053600489344,跟上面的一样,表示是就地追加,没有开辟新的内存
14
15 b.append('5')
16 print(b)
17 print(id(b)) #打印列表b的内存地址 140053600514432,跟上面的一样,表示是就地追加,没有开辟新的内存
18
19 '''将列表a的切片赋值给列表b,那么列表a和列表b是两个不同的对象,在内存中都有独立的空间。
20 '''
21
22 c = ['a','b','c'] #定义列表c
23 d = c #将列表c直接赋值给d
24
25 print(c); #打印列表c
26 print(d); #打印列表d
27
28 print(id(c)) #打印内存地址 140179340729280
29 print(id(d)) #打印内存地址 140179340729280
30
31 c.append('5'); #向列表c追加字符串'5';
32 print(c); #打印列表c,输出:['a', 'b', 'c', '5']
33 d.append('6'); #向列表d追加字符串'6';
34 print(c); #打印列表c,输出:['a', 'b', 'c', '5', '6']
35 print(d); #打印列表d,输出:['a', 'b', 'c', '5', '6']
36 print(id(c)); #查看修改列表后的内存地址:140179340729280
37 print(id(d)); #查看修改列表后的内存地址:140179340729280

总结:

1,将列表复制给列表,要用切片。这样子不会破坏原列表,而只是将列表的副本给了新标签。
2,变量无类型,对象有类型。
3,变量只是对象贴的标一个标签。
4,列表是修改是"就地"修改,不会改变内存地址。也就是说不会在内存中开辟另一块空间来存储修改后的列表。

Python之复制列表的更多相关文章

  1. [Python] 正确复制列表的方法

    new = old[:] Python老鸟都知道以上代码是什么意思.它复制列表old到new.它对于新手来说是种困惑而且应该避免使用这种方法.不幸的是[:]标记法被广泛使用,可能是Python程序员不 ...

  2. python list删除数据 和复制 列表

    复制列表的方法: lst = [1,2,3] lst1 = lst[:] # one way lst2 = list(lst) # another 删除数据的正确方法: num_list = [1, ...

  3. python学习之列表语法

    1.列表 1 list.append(obj)在列表末尾添加新的对象2 list.count(obj)统计某个元素在列表中出现的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中 ...

  4. 第三章 Python容器:列表、元组、字典与集合

      数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...

  5. Python数据类型(列表和元组)

    1.3 List(列表) 列表由一系列按特定顺序排列的元素组成. 在Python中,用方括号[ ]来表示列表,并用逗号来分隔其中的元素. 1.3.1 访问列表元素 在Python中,第一个列表元素的索 ...

  6. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  7. Python学习——Python 容器(列表,元组,字典,集合)

    列表: 列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时.与字符串不同,列表是可变的. 你可以直接对原始列表进行修改:添加新元素.删除或覆盖已有元素.在列表中,具有相同值 ...

  8. Python面试题目之Python的复制和赋值浅析

    python采用的是引用变量的结构,也就说如果你对一个变量赋值,并不是给这个变量开辟了一块内存空间而是将一个对象的内存空间地址告诉了这个变量,这样做的好处是便于管理,节省内存空间,便于内存释放等等.但 ...

  9. 【Python算法】列表中的 append 比 insert 效率高的实质

    append 与 insert 对比: # append 操作 >>> count = 10**5 >>> nums = [] >>> for i ...

随机推荐

  1. Redis 基础设计结构之四 set(集合)

    Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下set(集合)这种存储结构,s ...

  2. canvas 元素覆盖&穿透问题

    给网站添加canvas动态背景.完后发现有a标签无法点击,想到是canvas覆盖了(但有些是可以的).网上查找,有解决穿透的问题,但canvas的鼠标事件会无效.后发现是定位问题. canvas样式 ...

  3. NOIP2013 解题报告

    TG Day1 T3 货车运输 考虑货车的运输路径,最小边肯定是越大越好. 那就把图的最大生成树拉出来,每一辆货车在上面都有唯一确定的运输路径,否则必然会经过一条更小或相同的边. 然后倍增求路径上的最 ...

  4. Java基础教程——注解

    注解 JDK 5开始,Java支持注解. 注解,Annotation,是一种代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取并执行,而且不改变原有的逻辑. 注解可以用于:生成文档.编译检查. ...

  5. Kubernetes日志系统新贵Loki-Stack

    Loki简介 Grafana Loki是可以组成功能齐全的日志记录堆栈的一组组件. 与其他日志记录系统不同,Loki是基于仅索引有关日志的元数据的想法而构建的:标签(就像Prometheus标签一样) ...

  6. 自动化运维工具之Puppet常用资源(一)

    前文我们聊到了puppet的架构,单机模型和master/agent模型的工作流程以及puppet的基础使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14 ...

  7. Visual Studio 调试技巧之即时窗口的妙用

    在 Visual Studio 中有一个窗口叫 Immediate 窗口,中文版本应该叫即时窗口.默认会在你启动调试时在 VS 编辑器中弹出来.你也可以通过 Debug | Windows | Imm ...

  8. git的使用以及git和码云的连接

    什么是git? ​ Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.可以保存许多的历史版本,并且可以多人同时进行开发. 分布式版本控制系统 ​ 每个人拥有该项目 ...

  9. Hive数据导入HBase引起数据膨胀引发的思考

    最近朋友公司在做一些数据的迁移,主要是将一些Hive处理之后的热数据导入到HBase中,但是遇到了一个很奇怪的问题:同样的数据到了HBase中,所占空间竟增长了好几倍!详谈中,笔者建议朋友至少从几点原 ...

  10. go中位运算

    左移右移 const ( // 将 1 左移 100 位来创建一个非常大的数字 // 即这个数的二进制是 1 后面跟着 100 个 0 Big = 1 << 100 // 再往右移 99 ...