获取列表列表,迭代列表列表

问题描述 投票:5回答:1

我有一个像这样的列表,

big_list = [[1,3,5], [1,2,5], [9,3,5]]

sec_list = [1,3,5]

我想迭代big_list并检查每个列表值对sec_list。当我检查时,我想将不匹配的值存储到另一个列表列表中。所以,我这样做了:

sma_list = []
for each in big_list:
    for i,j in zip(each, sec_list):
        if i!=j:
            sma_list.append(i)

我得到这样的结果:

[2, 9]

但是,我需要一个像这样的列表,

[[2], [9]]

我怎样才能做到这一点?

python python-3.x list
1个回答
4
投票

简短的回答,

sma_list.append([i])

将值括在方括号中使其成为单个元素列表的第一个元素。

只有每个列表中缺少一个元素时,这才能正常工作。对整个事情使用理解你会好得多:

sma_list = [[i for i, j in zip(each, sec_list) if i != j] for each in big_list]
© www.soinside.com 2019 - 2024. All rights reserved.