簡體   English   中英

使用Python中的現有或不存在的鍵將值追加到字典中的列表

[英]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.

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