如何展开Python数组

37 浏览
0 Comments

如何展开Python数组

这个问题在这里已经有答案了:

如何在Python中连接两个列表?

在JS中我可以这样做

const a = [1,2,3,4]
const b = [10, ...a]
console.log(b) // [10,1,2,3,4]

Python中是否有类似的方法?

admin 更改状态以发布 2023年5月21日
0
0 Comments

这个问题没有明确说明你想要实现什么。

要复制该操作,可以使用Python的列表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]

0
0 Comments

正如Alexander在评论中指出的那样,列表加法是连接操作。

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的新版本允许你(滥用)星号 (*)操作符。

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...

0