假设我们有一个带有重复的数字。是否可以构造没有循环('for')和一行的数字频率字典?例如,使用列表理解或地图。我尝试过,但我无法提出更好的选择:
d_num = {}
for number in x:
d_num.update({number : 1} if d_num.get(number) == None else {number : d_num.get(number) + 1})
python遵循电池的理念,包括,在您的情况下,您可以简单地使用collections.Counter
:
from collections import Counter
Counter(x)
如果您希望它作为普通字典,则可以轻松地将其转换回。但是Counter
的行为(几乎)像字典一样(几乎),因此几乎没有必要:
dict(Counter(x))