根据列表元素生成列表列表

时间:2019-08-07 23:59:33

标签: python list

因此,我有一个list1和一个list_of_list1,在此示例中,我将其简化为:

list1=['a','cs','akdf']
list_of_list1=[['cs','kdddd','wwww'],['a','papa','lsl'],['jdk','asas'],['akdf', 'ffff','pep8']]

我想检查list1中的元素是否在list_of_list1中的任何元素中 然后将该子列表附加到名为list_with_structures的新列表中。

所需的输出将是:

[['a','papa','lsl'],['cs','kdddd','wwww'],['akdf', 'ffff','pep8']]

这是我的代码:

list_with_structures=[]
for sublist in list_of_list1:
    for valores in list1:
        if valores in sublist:
            list_with_structures.append(sublist)
            break
list_with_structures

注意:list1中元素的nº远大于list_of_list1中的列表

1 个答案:

答案 0 :(得分:1)

好像break命令过早地阻止了您的列表检查,使其无法遍历list1。

要重新配置代码:

for sublist in list_of_list1:
    for valores in list1:
        if valores in sublist:
            list_with_structures.append(sublist)

出于可读性考虑,我建议:

for item in list1:
    for sublist in list_of_list1:
        if item in sublist:
            list_with_structures.append(sublist)