人形决战兵器 发表于 2022-9-4 14:11:05

python能否用切片的方法来完成insert()函数

python能否用切片的方法可以实现在列表的任意位置插入多个元素的列表。

dolly_yos2 发表于 2022-9-4 14:29:29

也许这样?
>>> a=
>>> b=
>>> a=[*a[:3],*b,*a]
>>> a

hrpzcf 发表于 2022-9-4 14:49:36

本帖最后由 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

傻眼貓咪 发表于 2022-9-4 14:49:51

arr =
num = 999 # 想插入的元素
index = 2 # 想插入的位置
arr = arr[:index] + + arr # 格式:arr[:i] + x + arr
print(arr)

jackz007 发表于 2022-9-4 14:56:11

本帖最后由 jackz007 于 2022-9-4 14:57 编辑

a =
b =
a = a[:2] + b + a

kogawananari 发表于 2022-9-4 15:15:29

不能有个 insert能做 切片做不到 的事情:append

ZhKQYu 发表于 2022-9-5 09:33:41

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]
查看完整版本: python能否用切片的方法来完成insert()函数