我需要帮助执行一个相当简单的练习,只是在语法上我有点迷失。基本上,我读入一个非常简短的文本文件,其中包含15行3个元素(实质上是2个键和一个值)。将这些元素放入由字典组成的字典中,第一个字典包含位置,第二个字典由物品类型和价格组成。举个例子:{'gymnasium': {'weights': 15, 'shoes': 50}}。基本上,我需要循环遍历这个文件,但我无法将其作为字典列表读入。此外,如果外部列表中存在该键的实例,则无法将内部列表附加到外部列表。
d = {}
向字典添加条目:
d[key] = value
d["gymnasium"] = {}
d["gymnasium"]
,您都将获得对该内部字典的访问权限,并且可以对其执行通常的字典操作,例如使用[]
和=
将某些内容添加到其中:d["gymnasium"]["weights"] = 15
collections.defaultdict
可能对你非常有用,如果你被允许使用标准库的话。它会自动使用你定义的函数创建尚不存在的任何键,所以:
import collections
dd = collections.defaultdict(dict)
dd['a']['b'] = "foo"
将创建一个类似的结构:
{'a': {'b': 'foo'}}
dd = {}
location, item, cost = ("gymnasium", "weights", 15)
# Either
if location in dd:
dd[location][item] = cost
else:
# dd[location] does not exist yet!
dd[location] = {item: cost}
# Or
dd.setdefault(location, {})[item] = cost
# Or with defaultdict
ee = collections.defaultdict(dict)
ee[location][item] = cost # creates automagically
var = "weights"
, 我可以在代码中使用它d["gymnasium"][var] = 15
来实现与 Aasmund 的代码最后一行相同的效果。 - Ben Schwabe