比较Python中的两个嵌套列表



我有两个列表:

list_a = [["the", "ball", "is", "red", "and", "the", "car", "is", "red"],
["the", "boy", "is", "tall", "and", "the", "man", "is", "tall"]]
list_b = [["the", 0], ["ball", 0], ["is", 0], ["red", 0], ["and", 0], ["car", 0]],
["The", 0], ["boy", 0], ["is", 0], ["and", 0], ["man", 0], ["tall", 0]]          

目标:

list_b上迭代,拾取特定的string并检查它是否在list_a中,如果是,则将特定的int增加1。在这种情况下,重要的是我只将list_a[0]list_b[0]以及list_a[1]list_b[1]进行比较。完成后应该是这样的:

list_a = [["the", "ball", "is", "red", "and", "the", "car", "is", "red"],
["the", "boy", "is", "tall", "and", "the", "man", "is", "tall"]]
list_b = [["the", 2], ["ball", 1], ["is", 2], ["red", 2], ["and", 1], ["car", 1]],
["the", 2], ["boy", 1], ["is", 2], ["and", 1], ["man", 1], ["tall", 2]]

for loops给我带来了巨大的问题,这种方法似乎是错误的,不适合这项任务,所以我对不同的解决方案持开放态度并表示感谢。

您可以使用enumerate并在list_b和baserow_index中查找每行的索引,对list_a使用collections.Counter并更新list_b中每行的每个子列表中的值。

from collections import Counter
for row, lst_b in enumerate(list_b):
cnt_list_a = Counter(list_a[row])
for lst in lst_b:
lst[1] = cnt_list_a[lst[0].lower()]

print(list_b)

输出:

[
[['the', 2], ['ball', 1], ['is', 2], ['red', 2], ['and', 1], ['car', 1]], 
[['The', 2], ['boy', 1], ['is', 2], ['and', 1], ['man', 1], ['tall', 2]]
]

相关内容

  • 没有找到相关文章

最新更新