Defaultdict - 将字符串分配给循环中的键值

Defaultdict - assign strings to key value in loop

我很难理解为什么我试图循环并分配给默认字典中的字典键值对的字符串值无法正常工作。

此处期望的结果是循环遍历两个列表中的每个列表中的字符串值,return 一个字典,其中包含用于键的网站和用于值的团队名称。但是,追加和等号都不起作用。此外,我不确定为什么 defaultdict returns 的形式为 defaultdict(None, {}) (或 defaultdict(list, {}) 如果我将其启动为列表)。有没有办法断言这个字典的键和值都是字符串?

感谢您的帮助。

teams=['yankees','redsox','giants']
websites=['xasfsgrwg.cc','redsox.com','giants.org']

from collections import defaultdict 
baseballdict=defaultdict() #defaultdict(None, {})
#baseballdict=defaultdict(list)

for i in range(len(websites)):
    baseballdict[websites[i]]=baseballdict[teams[i]] #does not work 
    baseballdict[websites[i]].append(baseballdict[teams[i]]) # does not work

要创建一个以字符串类型作为键类型的 defaultdict,您应该像 my_dict = defaultdict(str) 那样创建。要拥有一个以网站为键、以团队为值的字典,你应该这样做:

for i in range(len(websites)):
    baseballdict[websites[i]] = teams[i]

您在代码的最后几行分配和追加错误。

这是对您的代码的修复。

teams=['yankees','redsox','giants']
websites=['xasfsgrwg.cc','redsox.com','giants.org']

baseballdict={}

for i in range(len(websites)):
    baseballdict[websites[i]]=teams[i] 

print(baseballdict)# prints dictionary