更简洁的方法将值附加到dict数组元素?

时间:2012-09-15 12:06:03

标签: python

当我想在Key下的Dict中附加一个newvalue时,我发现自己必须写:

# Dict={}
# Key = ....
# newvalue = ....

if not Key in Dict:
    Dict[Key] = [ newvalue ]
else:
    Dict[Key].append(newvalue)

它需要四行代码。有没有更简洁的方式与python标准库?例如

Dict.appendkeyvalue(Key, newvalue)

2 个答案:

答案 0 :(得分:6)

您可以使用defaultdict

from collections import defaultdict

d = defaultdict(list)

d['something'].append(3)
print d['something']
# > [3]

答案 1 :(得分:3)

使用标准词典,您可以使用setdefault()

d = {}
d.setdefault("something", []).append(3)

setdefault()此处返回d["something"](如果存在),否则会创建一个以[]为值的新词典条目并返回该值。