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
我很难理解为什么我试图循环并分配给默认字典中的字典键值对的字符串值无法正常工作。
此处期望的结果是循环遍历两个列表中的每个列表中的字符串值,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