我想从中得到:
keys = [1,2,3]
更改为:
{1: None, 2: None, 3: None}
有没有一种符合 Python 的方式可以做到这一点?
这是一种很丑陋的做法:
>>> keys = [1,2,3] >>> dict([(1,2)]) {1: 2} >>> dict(zip(keys, [None]*len(keys))) {1: None, 2: None, 3: None}
dict.fromkeys直接解决问题:
dict.fromkeys
>>> dict.fromkeys([1, 2, 3, 4]) {1: None, 2: None, 3: None, 4: None}
collections.defaultdict这实际上是一种类方法,因此它也适用于字典子类(如)。
collections.defaultdict
可选的第二个参数默认为None,指定要用于键的值。请注意,每个键将使用相同的对象,这可能会导致可变值出现问题:
None
>>> x = dict.fromkeys([1, 2, 3, 4], []) >>> x[1].append('test') >>> x {1: ['test'], 2: ['test'], 3: ['test'], 4: ['test']}