gpt4 book ai didi

python - 比较列表或字典的最佳算法

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:36 25 4
gpt4 key购买 nike

我正在通过 Python 处理一些复杂的数据集。我是一名 Python 编码新手。数据集是日期、标题、内容和 URL 的集合。

从概念上讲,它会是这样的。

1st scraping runs, then I get,

[9/6 9:00, title1, content1]
[9/6 9:00, title2, content2]
[9/6 8:22, title3, content3]
[9/6 11:01, title4, content4]
...

2nd scraping runs, then I get,

[9/6 13:05, title5, content5]
[9/6 12:13, title6, content6]
[9/6 9:00, title1, content1]
[9/6 14:21, title4, content4'] ---> This is updated of content4
...

我可以运行抓取代码。我想做的是比较第一次抓取运行和第二次抓取的输出。我希望只显示差异。

[9/6 13:05, title5, content5]
[9/6 12:13, title6, content6]
[9/6 10:21, title4', content4']

我不认为我必须比较“内容”。我只能通过“日期”和“标题”来获取差异。

我花了几个小时,但想不出优雅的方法来完成这项工作。这里最好的方法是什么?基本上,我想将输出存储为 pickle,然后动态比较第二次抓取运行输出。但是,我不确定如何比较以同时获取列表的两个元素,然后与第二个列表中的两个元素进行比较。看来for循环并不简单...

或者,这可以通过dict来完成吗?我不这么认为...但欢迎提出任何建议。

如果有经验的 friend 可以评论一下,我们将不胜感激。

最佳答案

尝试比较 python 3 中的 list:

a= [['9/6 9:00', 'title1', 'content1'],
['9/6 9:00', 'title2', 'content2'],
['9/6 8:22', 'title3', 'content3'],
['9/6 11:01','title4', 'content4']]
b=[['9/6 13:05', 'title5', 'content5'],
['9/6 12:13', 'title6', 'content6'],
['9/6 9:00', 'title1', 'content1'],
['9/6 14:21', 'title4', 'content4']]
for i in b:
if i not in a:
print(i)

输出:

['9/6 13:05', 'title5', 'content5']
['9/6 12:13', 'title6', 'content6']
['9/6 14:21', 'title4', 'content4']

这里直接将整个列表与另一个列表进行比较,例如 ['9/6 11:01','title4', 'content4']['9/6 14: 21', 'title4', 'content4'] 因此,如果 list 中的任何单个元素不同,它会显示该 list 但如果您想比较不同的元素将 list 的元素添加到另一个 list 中的另一个元素,那么您必须应用另一种方法。

替代方法(其作用相同,但使用列表理解):

print(*[i for i in b if i not in a],sep='\n')

它也会给出相同的输出:

['9/6 13:05', 'title5', 'content5']
['9/6 12:13', 'title6', 'content6']
['9/6 14:21', 'title4', 'content4']

Here list comprehension part is only [i for i in b if i not in a] other sep='\n' is for displaying every element on next line. For understanding list comprehension see this document : Python List Comprehensions: Explained Visually

如果您告诉我们必须打印什么差异,那么我可以提供帮助,因为有问题时我不明白我们如何在 [9 行中获得 9/6 10:21 这个输出/6 10:21, 标题4', 内容4']

关于python - 比较列表或字典的最佳算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39363462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com