Python 列表元素的增加、修改

ls = [3, 4, 5]
ls = ls + [7,4]
print(ls) #该操作速度较慢,在涉及大量元素添加时不建议使用该方法。

结果: [3, 4, 5, 7, 4]
** 注意: **严格意义上来讲,这并不是真的为列表添加元素,而是 创建了一个新列表 ,并将原列表中的元素和新元素依次复制到新列表的内存空间。由于涉及大量元素的复制,该操作速度较慢,在涉及大量元素添加时不建议使用该方法。

a1 = [1, 2, 3]
b1 = [1, 2, 3]
print(id(a1) == id(b1))   #a、b的ID不一样
print(id(a1[0]) == id(b1[0]))

结果: False
True

注意:
Python采用的是基于值的自动内存管理方式,当为对象修改值时,并不是真的直接修改变量的值,而是使变量指向新的值,这对于Python所有类型的变量都是一样的。

原地操作

如果是通过下标来修改序列中元素的值或通过可变序列对象自身提供的方法来增加和删除元素时,序列对象在内存中的起始地址是不变的,仅仅是被改变值的元素地址发生变化,也就是所谓的“原地操作”。

a = [1, 2, 3, 4]
print(id(a))    # 直接修改列表的值,会产生一个新的列表
a.append(5)
print(id(a))    # 用append()方法属于原地修改

a[1] = 'h'
print(a)
print(id(a))    # 用下标修改列表元素,属于原地修改

在这里插入图片描述
在上面 a 的基础之上
extend( ) 方法,insert( )方法

# extend( ) 方法:在列表尾部添加另外一个可迭代对象
str1 = 'hello'     # 在尾部扩展一个字符串
a.extend(str1)
print(a)

# insert()方法:将元素插入列表的指定位置。但会影响速度
a.insert(2, '*')  #在下标为2的位置插入元素'*'
print(a)

尽量从列表尾部进行元素的增加与删除操作。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐樽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值