如何在Python中合并两个列表(一个列表列表)?
输入:
C = [[[1,2,3],[0]],[[1,2,3],[1]],[[1,2,3],[1]],[[1,2,3],[1]]]
期望的输出:
zip
我试过了:
{{1}}
答案 0 :(得分:1)
根据您的预期输出,您尝试将列表A
中的第一个内部列表与列表B
中的每个项目组合。
使用以下简单方法(列表理解):
C = [[A[0], [i]] for i in B]
print(C)
输出:
[[[1, 2, 3], [0]], [[1, 2, 3], [1]], [[1, 2, 3], [1]], [[1, 2, 3], [1]]]
答案 1 :(得分:0)
更优雅的做法
DECLARE @singleQuote CHAR
SET @singleQuote = CHAR(39)
insert into my_table values('hi, my name'+ @singleQuote +'s tim.')
输出::
A=[[1,2,3],[3,4,5],[6,7,8],[9,10,11]]
B=[0,1,1,1]
map(lambda e: [A[0],[e]], B)
答案 2 :(得分:0)
您已经有了使用 list comprehension 实现此目标的答案。如果您以正确的方式使用它,您也可以使用zip()
来实现它:
使用map(zip())
组合作为:
>>> list(map(lambda x: [A[0], [x]], B))
[[[1, 2, 3], [0]], [[1, 2, 3], [1]], [[1, 2, 3], [1]], [[1, 2, 3], [1]]]
使用zip(map())
组合作为:
>>> zip([A[0]]*4, map(lambda x: [x], B))
[([1, 2, 3], [0]), ([1, 2, 3], [1]), ([1, 2, 3], [1]), ([1, 2, 3], [1])]
说明:此处map()
会将您的列表B
转换为:
>>> map(lambda x: [x], B)
[[0], [1], [1], [1]]
和[A[0]]*4
将创建包含A[0]
副本的新列表:
>>> [A[0]]*4
[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
现在您需要zip()
这两个列表。
`