簡體   English   中英

通過for循環從多個對象向字典添加鍵和值

[英]add keys and values to a dictionary from multiple objects by for loop

對象已由網站搜尋器創建。 在該示例中, 標題圖像文件路徑被存儲。 輸出如下:

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

目標是將標題作為鍵存儲,將圖像路徑作為值存儲在字典中

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] = value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM