获取一个列表的列表,迭代一个列表的列表。

5

我有一个类似于这样的列表嵌套:

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]]

我该如何实现这个?
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]

很好,当我添加时 [] 做什么?将其放到列表中? - user9431057
列表推导式很好用。但是,如果我像我现在这样使用传统的方式,如何修改以检查多个元素?我一直在谷歌上搜索Python中的“列表嵌套”,很难找到一个比较列表的东西:( - user9431057

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接