Python之复制列表
将一个列表的数据复制到另外一个列表中。
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之复制列表的更多相关文章
- [Python] 正确复制列表的方法
new = old[:] Python老鸟都知道以上代码是什么意思.它复制列表old到new.它对于新手来说是种困惑而且应该避免使用这种方法.不幸的是[:]标记法被广泛使用,可能是Python程序员不 ...
- python list删除数据 和复制 列表
复制列表的方法: lst = [1,2,3] lst1 = lst[:] # one way lst2 = list(lst) # another 删除数据的正确方法: num_list = [1, ...
- python学习之列表语法
1.列表 1 list.append(obj)在列表末尾添加新的对象2 list.count(obj)统计某个元素在列表中出现的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中 ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- Python数据类型(列表和元组)
1.3 List(列表) 列表由一系列按特定顺序排列的元素组成. 在Python中,用方括号[ ]来表示列表,并用逗号来分隔其中的元素. 1.3.1 访问列表元素 在Python中,第一个列表元素的索 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- Python学习——Python 容器(列表,元组,字典,集合)
列表: 列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时.与字符串不同,列表是可变的. 你可以直接对原始列表进行修改:添加新元素.删除或覆盖已有元素.在列表中,具有相同值 ...
- Python面试题目之Python的复制和赋值浅析
python采用的是引用变量的结构,也就说如果你对一个变量赋值,并不是给这个变量开辟了一块内存空间而是将一个对象的内存空间地址告诉了这个变量,这样做的好处是便于管理,节省内存空间,便于内存释放等等.但 ...
- 【Python算法】列表中的 append 比 insert 效率高的实质
append 与 insert 对比: # append 操作 >>> count = 10**5 >>> nums = [] >>> for i ...
随机推荐
- JQuery案例:暖心小广告
暖心小广告 写一个页面,每隔3秒显示小广告,再过3秒自动关闭. <head> <meta charset="UTF-8"> <title>暖心广 ...
- 浅谈代理模式与java中的动态代理
代理模式的定义: 代理模式是一个使用律非常高的模式,定义如下: 为其他对象提供一种代理,以控制对这个对象的访问. 类图: 简单的静态代理: public interface IRunner{ //这是 ...
- 浅尝 Elastic Stack (二) Logstash
一.安装与启动 Logstash 依赖 Java 8 或者 Java 11,需要先安装 JDK 1.1 下载 curl -L -O https://artifacts.elastic.co/downl ...
- Spring Cloud 学习 (五) Zuul
Zuul 作为路由网关组件,在微服务架构中有着非常重要的作用,主要体现在以下 6 个方面: Zuul, Ribbon 以及 Eureka 相结合,可以实现智能路由和负载均衡的功能,Zuul 能够将请求 ...
- NodeJS+formidable实现文件上传加自动重命名
前述 本人node初学者,此前使用原生node实现文件上传时遇到了一些困难,只做到了.txt 和.png两中格式的文件可以正常上传,如果上传其他格式文件服务端保存的文件会无法正常打开,原因是对form ...
- 第四十一章、PyQt显示部件:TextBrowser、CalendarWidget、LCDNumber、ProgressBar、Label、HorizontalLine和VerticalLine简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在Designer中,显示部件有Labe ...
- 第三十二章、使用splitDockWidget和tabifyDockWidget嵌套布局QDockWidget的PyQt人机对话案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.引言 在第<第三十一章.containers容器类部件QDo ...
- 第十七章、Model/View开发:QListView的功能及属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView是从QAbstractItemView 派生的类,实现了QAbstrac ...
- PHP 的$server变量
PHP中$_SERVER["QUERY_STRING"]函数 详解PHP中$_SERVER函数的QUERY_STRING和 $_SERVER存储当前服务器信息,其中有几个值 如 ...
- uniapp vue 购车计算器,贷款计算器,保险计算器
基于vue开发的买车计算器,支持uniapp 概述 项目为工作中开发,感觉比较有意思,而且能够帮助其他人快速开发功能,我就发上来了,大佬勿喷吧,没什么技术含量! uniapp打包多端[小程序类]可能会 ...