合并多个子列表,值不为零

0 投票
1 回答
26 浏览
提问于 2025-04-14 18:18

在Python中,如何最好地进行合并操作,条件是值不等于0,最终得到下面的结果呢?

list = [
    [0, 0, 0, '', 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 'b', 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 'c', 0, 0],
    [0, 0, 0, 0, 0, 0, 0, '', 0],
    [0, 0, 0, 0, 0, 0, 0, 0, '']
]

[[0, 0, 0, '', 'b', 0, 'c', '', '']] # result

1 个回答

1

你可以通过使用 zip 来过滤掉子列表中的0:

[next((i for i in s if i != 0), 0) for s in zip(*lst)]

示例: https://ideone.com/brrPH3

撰写回答