How to spread a python array
本问题已经有最佳答案,请猛点这里访问。
在JS中我可以这样做
1 2 3 | const a = [1,2,3,4] const b = [10, ...a] console.log(b) // [10,1,2,3,4] |
在python中有类似的方法吗?
正如亚历山大在评论中指出的,列表添加是串联。
1 2 3 | a = [1,2,3,4] b = [10] + a # N.B. that this is NOT `10 + a` # [10, 1, 2, 3, 4] |
也可以使用
1 2 3 4 | a = [1,2,3,4] b = [10] b.extend(a) # b is [10, 1, 2, 3, 4] |
更新版本的python允许您(ab)使用splat(
1 2 | b = [10, *a] # [10, 1, 2, 3, 4] |
不过,您的选择可能反映出对现有列表进行变异(或不进行变异)的需要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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... |
python的list对象具有
您可以这样使用它:
1 2 3 4 | a = [1, 2, 3, 4] b = [10] b.extend(a) print(b) |
这个问题并不能明确你到底想要达到什么目标。
还有extend方法,它将您作为参数传递的列表中的项附加在后面:
1 2 3 4 5 | >>> list_one = [1,2,3] >>> list_two = [4,5,6] >>> list_one.extend(list_two) >>> list_one [1, 2, 3, 4, 5, 6] |
要在特定插入点扩展列表,可以使用列表切片:
1 2 3 4 | >>> l = [1, 2, 3, 4, 5] >>> l[2:2] = ['a', 'b', 'c'] >>> l [1, 2, 'a', 'b', 'c', 3, 4, 5] |