【Python】列表方法“+”与“extend()”区别
列表是 python 常见的数据结构类型
用于在列表后追加一个数据有“append()”方法
用于在列表后追加多个数据有“+”和“extend()”两种方法
下面介绍“+”和“extend()”这两种方法的异同:
1 extend() 方法
a = [1,2,3]
b = [4,5,6]
print("a id :",id(a))
print("b id :",id(b))# extend()方法
a.extend(b)
print("extend: a =",a)
print("extend: a id =",id(a))# 结果
>> a id : 139646799147568
>> b id : 139646799150128
>> extend: a = [1, 2, 3, 4, 5, 6]
>> extend: a id = 139646799147568
可见,列表的extend()方法能够把 b 列表中多个元素追加到 a 里面,而不改变 a 的 id
2 列表加法
a = [1,2,3]
b = [4,5,6]
print("a id :",id(a))
print("b id :",id(b))# +
a += b
print("+: a =",a)
print("+: a id =",id(a))# 结果
>> a id : 140080409711152
>> b id : 140080409713712
>> +: a = [1, 2, 3, 4, 5, 6]
>> +: a id = 140080409711152
可见,列表的加法方法能够实现相同的功能,也不改变 a 的 id
3 注意事项
网上其他博客可能会说 列表加法 的追加方式会改变 id
请注意,这是由于他们的实例引入了新的列表,如下所示
a = [1,2,3]
b = [4,5,6]
c = []
print("a id :",id(a))
print("b id :",id(b))
print("c id :",id(c))# +
c = a + b
print("a =",a)
print("b =",b)
print("c =",c)
print("a id :",id(a))
print("b id :",id(b))
print("c id :",id(c))>> a id : 140212670542384
>> b id : 140212670544944
>> c id : 140212669314064
>> a = [1, 2, 3]
>> b = [4, 5, 6]
>> c = [1, 2, 3, 4, 5, 6]
>> a id : 140212670542384
>> b id : 140212670544944
>> c id : 140212669289248
可见,c 最开始被初始化为空列表
通过赋值后,id 改变,这才是网上其他帖子未说明的原因
【Python】列表方法“+”与“extend()”区别相关推荐
- Python列表,元组,字典的区别
Python列表,元组,字典的区别: 1.元组是不可变的, 而列表.字典是可变的.元组是不可变对象,对象一旦生成,它的值将不能更改:列表是可变对象,对象生成后,可以对其元素进行更改.添加.删除.清空. ...
- 使用Python列表方法模拟约瑟夫环问题
问题描述: 有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k(假设k=3)报数,报到k的人退出圈子,然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号. 之前曾经推送过一个使用P ...
- python数组和列表的区别_JS数组方法与python列表方法的比较
JS的数组(Array)与python的列表(List)很相似,本人因为之前学过JS,后来学习python感觉有些方法很容易混淆,这里对常用的一些方法做些区分 增 删 改 查 排序 逆序 增加元素 1 ...
- python extend_也谈python列表append和extend的区别
关于append和extend两个方法,网上很多人说法如下: append() 方法向列表的尾部添加一个新的元素.只接受一个参数. extend()方法只接受一个列表作为参数,并将该参数的每个元素都添 ...
- python列表方法语句_Python中列表和元组的相关语句和方法讲解
列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...
- python定义一个空列表lt_11个python列表方法全面解析!
参数:object可以添加 列表,字典,元组,集合,字符串等. #append()函数的操作对象是原列表.ls = [1,2,3,4,5,6] ls.append(12)#添加元素 print(ls) ...
- python列表方法图解_python中list(列表)的使用方法总结(图文)
本篇文章给大家带来的内容是关于python中list(列表)的使用方法总结(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.list(列表)是一种有序的集合,可以随时添加. ...
- python列表和元组的区别
目录 一.list(列表)和tuple(元组)共同点和区别 二.定义一个变量,包含现在所学的数据类型 三.目前学到的序列有哪些? 1.将除tuple之外的序列转换为tuple 2.将除list之外的序 ...
- python列表和链表的区别_顺序表和链表的区别
一.从操作上角度 顺序表和链表都具有增.删.查.改的相同功能,但算法复杂度却不相同. (1)增:顺序表往指定位置,不覆盖的添加一个值,后面的值日要往后移动,算法复杂度为O(n):链表往指定位置添加一个 ...
最新文章
- OpenCV学习笔记(一):图像显示
- 分布式系统中的进程标识
- DOM 事件深入浅出(二)
- Linux iptables:规则原理和基础
- 16位计算机cpu电路图,简单16位CPU设计.doc
- 安装eclipse及android,Eclipse Android 安装
- Java 使用阿里云短信的API接口
- 如何使用SQL删除某个字段重复的记录,保留其中一条
- MacBook高效优先设置,你都开启了吗?
- x86架构PC机系统总线概述
- [VC++]控制台程序窗口隐藏
- Centos 7环境MySql8.0.28源码安装
- svchost是什么程序
- 第四章——权限提升分析及防御
- RocketMQ 延迟消息(定时消息)4.9.3 版本优化 异步投递支持
- Java开发工具-IDEA(更新中...)
- .NET项目报受源代码管理,向源代码管理注册此项目时出错的解决方案
- 微信企业支付 服务器根证书,微信支付服务器证书根ca证书有什么用
- 用Arduino做一个“空心时钟”(只有表针,没有表盘)
- ACL中的permit/deny与traffic policy中behavior的permit/deny之间是什么关系?