在JS中,我可以这样做
const a = [1,2,3,4]
const b = [10, ...a]
console.log(b) // [10,1,2,3,4]
python中有类似的方法吗?
答案 0 :(得分:21)
正如亚历山大在评论中指出的那样,列表添加是连接。
a = [1,2,3,4]
b = [10] + a # N.B. that this is NOT `10 + a`
# [10, 1, 2, 3, 4]
您也可以使用list.extend
a = [1,2,3,4]
b = [10]
b.extend(a)
# b is [10, 1, 2, 3, 4]
和更新版本的Python允许您(ab)使用splat(*
)运算符。
b = [10, *a]
# [10, 1, 2, 3, 4]
但是,您的选择可能反映出需要改变(或不改变)现有列表。
a = [1,2,3,4]
b = [10]
DONTCHANGE = b
b = b + a # (or b += a)
# DONTCHANGE stays [10]
# b is assigned to the new list [10, 1, 2, 3, 4]
b = [*b, *a]
# same as above
b.extend(a)
# DONTCHANGE is now [10, 1, 2, 3, 4]! Uh oh!
# b is too, of course...
答案 1 :(得分:2)
Python的列表对象具有.extend
函数。
你可以像这样使用它:
a = [1, 2, 3, 4]
b = [10]
b.extend(a)
print(b)
答案 2 :(得分:1)
这个问题并不能说明你想要达到的目的。
还有extend方法,它将您传递的列表中的项目作为参数附加:
>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]
要在特定插入点扩展列表,您可以使用列表切片:
>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]