现在我有2个清单,

list1 = [[0,1],[0,2],[0,10]]
list2 = [[1, ['miniwok', 'food1']], [2,['chicken', 'food2']], [3,['duck', 'food3']], ..... , [10, ['pizza', 'food10']]]


我想比较list1中的所有第二个元素,如果它存在于list2中,则打印相应的列表。
所以我想要的结果是这样的:

[[1, 'miniwok'],[2, 'chicken'],[10,'pizza']]


我尝试使用嵌套的for循环,但是我认为我做错了

for x in range(len(list1)):
    for y in range(1, len(list2)+1):
        if(list1[x][1] == list2[y]):
            result = [y, list2[y][0]]
            fstore.append(result)

最佳答案

您的代码在通过索引访问值时遇到了一些问题,并且在使用fstore之前未将fstore分配为空列表。

您的答案的正确版本如下:

list1 = [[0,1],[0,2],[0,10]]
list2 = [[1, ['miniwok', 'food1']], [2,['chicken', 'food2']], [3,['duck', 'food3']], [10, ['pizza', 'food10']]]
fstore = []
for x in range(len(list1)):
    for y in range(len(list2)):
        if(list1[x][1] == list2[y][0]):
            result = [list2[y][0], list2[y][1][0] ]
            fstore.append(result)
            break


fstore的内容:

[[1, 'miniwok'], [2, 'chicken'], [10, 'pizza']]


希望对您有所帮助。如有疑问,可以在评论中提问。 :)

10-05 21:08
查看更多