结合python3.x中的列表列表

时间:2015-03-12 18:51:53

标签: python list python-3.x dictionary

我有一个列表,例如

[[0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 2, 0, 0, 0, 0, 0], [0, 0, 3, 0, 0, 0, 0], [0, 0, 0, 2, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 3, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 2, 0], [0, 0, 0, 0, 0, 0, 3]]

我想把它组合成一个整数列表

[0,1,0,2,3,2,0,3,0,2,3]

我找不到如何实现它的确切方法。

模式是如果列表中有除0以外的任何数字,请将其添加为找到的实际数字,否则将其输入为0.

4 个答案:

答案 0 :(得分:0)

3>> [functools.reduce(operator.or_, x) for x in L]
[0, 1, 0, 2, 3, 2, 0, 3, 0, 2, 3]

答案 1 :(得分:0)

只需迭代:

new = [0 for i in range(len(old[0]))]

for a in old:
    for b, c in enumerate(a):
        new[b] += c

答案 2 :(得分:0)

你的目标是压扁2d列表吗?如果是这样,以下代码段中的b就是您想要的:

a = [[1,2,3],[4,5,6],[7,8,9]]
b = [val for sublist in a for val in sublist]

答案 3 :(得分:0)

假设你只能得到全零或一个非零数字,你可以在{0}作为{{1}的默认值过滤所有0之后在next上调用filter }。

next