[英]How to incorporate lists as values in a dictionary?
我想制作一個字典,記錄所有我看過的動漫和我讀過的漫畫。 我希望按鍵是“ Anime”和“ Manga”,它們的值應該是列表,在其中可以添加我看到的系列。
amanga = {}
#total = 0
for x in range (2):
x = input("Anime or Manga? ")
print("How many entries? ")
n = int(input())
for i in range (n):
amanga[x[i]] = input("Entry: ")
print (amanga)
這些值不在列表中,而是按原樣添加。 我已經鏈接了輸出。
我希望輸出是
{'Anime' : [Monster, Legend of the Galactic Heroes],
'Manga' : [Berserk, 20th Century Boys] }
你快到了 嘗試這些修改。 它使用defaultdict
,可以使您的代碼更簡潔:
from collections import defaultdict
# Create a dictionary, with the default value being `[]` (an empty list)
amanga = defaultdict(list)
for _ in range(2):
media_type = input("Anime or Manga? ")
n = int(input("How many entries?\n"))
amanga[media_type].extend([input("Entry: ") for _ in range(n)])
print(dict(amanga))
輸出:
Anime or Manga? Anime
How many entries?
2
Entry: Monster
Entry: Legend of the Galacic Heroes
Anime or Manga? Manga
How many entries?
2
Entry: Berserk
Entry: 20th Century Boys
{'Anime': ['Monster', 'Legend of the Galacic Heroes'], 'Manga': ['Berserk', '20th Century Boys']}
另外,您將來可以再次運行相同的代碼,它將僅向amanga
添加條目。
您可以將原始代碼更改為如下所示,這不是最優雅的方法,但它是找出問題所在的好起點:
amanga = {'Anime':[], 'Manga':[]}
#total = 0
for x in range (2):
x = input("Anime or Manga? ") #some data validation would be handy here to ensure right key is choosen
print("How many entries? ")
n = int(input())
for i in range (n):
amanga[x].append(input("Entry: "))
print (amanga)
輸出:
Anime or Manga? 'Anime'
How many entries?
2
Entry: 'a'
Entry: 'b'
Anime or Manga? 'Manga'
How many entries?
1
Entry: 'n'
{'Anime': ['a', 'b'], 'Manga': ['n']}
您已經知道只有兩種類型的類型(動漫和漫畫),因此可以使用這兩個鍵創建字典,然后將條目追加到它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.