我有以下字典
>>> {'a':3, 'i': 1, 'k': 1, 'm': 1, 'l': 1, 'n': 1, 'p': 1, 'u': 1}
如何将其更新为
>>> updateDict({'a':3, 'i': 1, 'k': 1, 'm': 1, 'l': 1, 'n': 1, 'p': 1, 'u': 1},
milk),
这样输出
{'a':3, 'i': 0, 'k': 0, 'm': 0, 'l': 0, 'n': 1, 'p': 1, 'u': 1}
答案 0 :(得分:3)
将'milk'
中的键重置为0:
In [14]: d = {'a':3, 'i': 1, 'k': 1, 'm': 1, 'l': 1, 'n': 1, 'p': 1, 'u': 1 }
In [15]: d.update(dict.fromkeys(list('milk'), 0))
In [16]: d
Out[16]: {'a': 3, 'i': 0, 'k': 0, 'l': 0, 'm': 0, 'n': 1, 'p': 1, 'u': 1}
要将'milk'
中的键减1,可以使用循环,如mitchelllc's answer中所示。或者,如果您愿意消除值为0的键,则可以使用collections.Counter,如下所示:
import collections
d = collections.Counter({'a':3, 'i': 1, 'k': 1, 'm': 1, 'l': 1, 'n': 1, 'p': 1, 'u': 1 })
m = collections.Counter(list('milk'))
print(d - m)
产量
Counter({'a': 3, 'p': 1, 'u': 1, 'n': 1})
答案 1 :(得分:1)
>>> dict = {'a':3, 'i': 0, 'k': 0, 'm': 0, 'l': 0, 'n': 1, 'p': 1, 'u': 1}
>>> for s in 'milk':
>>> if s in dict:
>>> dict[s] -= 1
如果你想在dict中将'milk'设置为零,请参阅@ unutbu的答案。
答案 2 :(得分:0)
对于字符串中的每个字符,从字典中获取相应的值,递减该值,然后重新插入。
答案 3 :(得分:0)
试试这个:
s = 'milk'
d = {'a':3, 'i': 1, 'k': 1, 'm': 1, 'l': 1, 'n': 1, 'p': 1, 'u': 1 }
for letter in s:
if letter in d:
d[letter] = 0