通过for循环将多个对象中的键和值添加到字典中



对象是由一个网站爬虫创建的。在本例中,存储标题图像文件路径。输出如下:

for article in fetcher.fetch():
print(article.title + " | " + article.image)
Polarised modular conglomeration | ./img/1.jpg
Cross-group contextually-based middleware | ./img/2.jpg
De-engineered encompassing structure | ./img/3.jpg
Fully-configurable multi-tasking interface | ./img/4.jpg
Versatile eco-centric core | ./img/5.jpg
Optional maximized utilisation | ./img/6.jpg
Open-architected secondary product | ./img/7.jpg

目标是将标题存储为关键字,将image路径存储为字典中的值

dict = {}
for dictionary in fetcher.fetch():
dict = {dictionary.title: dictionary.image}
print(dict)
{'Open-architected secondary product': './img/7.jpg'}

问题:字典中只存储最后一项。我的代码出了什么问题?

谢谢

使用现有循环(尽管@N Chauhan对字典有很好的理解(:

for dictionary in fetcher.fetch():
dict[dictionary.title] = dictionary.image

您的问题是因为每次迭代都要覆盖dict。使用字典理解:

article_info = {article.title: article.image
for article in fetcher.fetch()}

附带说明:始终避免使用内置名称作为变量,就像使用dict作为变量名称一样。只需选择一个更具描述性的名称-这将最终从两个方面受益:

  • 默认的dict类没有阴影
  • 如果你给变量起一个好名字而不是一个模糊的名字,你就会更好地了解变量是什么

您可以分配给一个单独的字典条目以添加:var[key]=值

最新更新