[英]List of Dictionaries Python: Append a new key, value pair to dictionary if existing key, value pair matches
[英]Append value to list in dictionary with existing or non-existing key in Python
我有一個for循環,它遍歷兩個列表並將其合並到字典中。 鍵是字符串(網頁標題),值是列表(包含鏈接)。
有時我會從字典中已經存在的循環中獲得相同的鍵。 沒關系 但是值是不同的(新鏈接),我想以附加鏈接而不是替換鏈接的方式來更新鍵的值。
該代碼如下所示。 注意: issue_links
是URL列表
for index, link in enumerate(issue_links):
issue_soup = BeautifulSoup(urllib2.urlopen(link))
image_list = []
for image in issue_soup.findAll('div', 'mags_thumb_article'):
issue_name = issue_soup.findAll('h1','top')[0].text
image_list.append(the_url + image.a['href'])
download_list[issue_name] = image_list
當前,屬於相同issue_name
鍵的新鏈接( image_list
)被覆蓋。 我想附加它們。 有人告訴我使用collections.defaultdict
模塊,但我不熟悉它。
注意:我使用enumerate
是因為索引被打印到控制台(未包含在代碼中)。
像這樣:
from collections import defaultdict
d = defaultdict(list)
d["a"].append(1)
d["a"].append(2)
d["b"].append(3)
然后:
print(d)
defaultdict(<class 'list'>, {'b': [3], 'a': [1, 2]})
if download_list.has_key(issume_name):
download_list[issume_name].append(image_list)
else:
download_list[issume_name] = [image_list]
如果您使用相同的密鑰,請追加列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.