假设我有array
如下
arr = [1 , 2, 3, 4, 5]
我想将其转换为dictionary
之类的
{
1: 1,
2: 1,
3: 1,
4: 1,
5: 1
}
我的动机是这样我可以在O(1)时间内快速增加任何键的数量。
非常感谢帮助。感谢
答案 0 :(得分:4)
from collections import Counter
answer = Counter(arr)
答案 1 :(得分:4)
您可以使用fromkeys方法:
>>> arr = [1 , 2, 3, 4, 5]
>>> dict.fromkeys(arr,1)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
>>>
答案 2 :(得分:2)
from collections import Counter
arr = [1, 2, 3, 4, 5]
c = Counter(arr)
答案 3 :(得分:2)
您可以使用词典理解:
{k: 1 for k in arr}
答案 4 :(得分:1)
>>> import collections
>>> arr = [1, 2, 3, 4, 5]
>>> collections.Counter(arr)
Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1})
答案 5 :(得分:0)
arr = [1 , 2, 3, 4, 5]
print({p: arr.count(p) for p in arr})
我认为更精确,当数组中的元素重复时,它仍然可以工作。