python能否用切片的方法来完成insert()函数
python能否用切片的方法可以实现在列表的任意位置插入多个元素的列表。 也许这样?>>> a=
>>> b=
>>> a=[*a[:3],*b,*a]
>>> a
本帖最后由 hrpzcf 于 2022-9-4 14:51 编辑
可以用切片实现多个数据插入列表的效果,但是要看实际场景,下面是区别
a =
b =
c = a
d = b
e =
print("a 的id:", id(a))
print("c 的id:", id(c))
a = a[:1] + e + a # c 不会跟着变
print("a 切片后:")
print("a 内容:", a)
print("c 内容:", c)
print("a 的id:", id(a))
print("c 的id:", id(c))
print("=" * 30)
print("b 的id:", id(b))
print("d 的id:", id(d))
b.insert(1, 99) # d 也会跟着变
print("b insert后:")
print("b 内容:", b)
print("d 内容:", d)
print("b 的id:", id(b))
print("d 的id:", id(d))
# 切片后,a 不再是原来的 a,而 b insert 后还是原来的 b
# 我的输出:
# a 的id: 2331965413056
# c 的id: 2331965413056
# a 切片后:
# a 内容:
# c 内容:
# a 的id: 2331968333440
# c 的id: 2331965413056
# ==============================
# b 的id: 2331965382720
# d 的id: 2331965382720
# b insert后:
# b 内容:
# d 内容:
# b 的id: 2331965382720
# d 的id: 2331965382720
arr =
num = 999 # 想插入的元素
index = 2 # 想插入的位置
arr = arr[:index] + + arr # 格式:arr[:i] + x + arr
print(arr) 本帖最后由 jackz007 于 2022-9-4 14:57 编辑
a =
b =
a = a[:2] + b + a 不能有个 insert能做 切片做不到 的事情:append class new_List(list):
def insert(self, pos : int, lst : list):
temp = self[:]
self.clear()
self += temp[:pos] + lst + temp
lst = new_List()
lst.insert(2, )
print(lst)
页:
[1]