假设我有array
如下
arr = [1 , 2, 3, 4, 5]
我想把它转换成一个dictionary
like
{
1: 1,
2: 1,
3: 1,
4: 1,
5: 1
}
我这样做的动机是我可以在 O(1) 时间内快速增加任何键的计数。
帮助将不胜感激。谢谢
假设我有array
如下
arr = [1 , 2, 3, 4, 5]
我想把它转换成一个dictionary
like
{
1: 1,
2: 1,
3: 1,
4: 1,
5: 1
}
我这样做的动机是我可以在 O(1) 时间内快速增加任何键的计数。
帮助将不胜感激。谢谢
from collections import Counter
answer = Counter(arr)
您可以使用fromkeys方法:
>>> arr = [1 , 2, 3, 4, 5]
>>> dict.fromkeys(arr,1)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
>>>
您可以使用字典理解:
{k: 1 for k in arr}
from collections import Counter
arr = [1, 2, 3, 4, 5]
c = Counter(arr)
>>> import collections
>>> arr = [1, 2, 3, 4, 5]
>>> collections.Counter(arr)
Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1})
arr = [1 , 2, 3, 4, 5]
print({p: arr.count(p) for p in arr})
我认为它更精确,并且当数组中的元素重复时它仍然有效。