Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数组转换为字典(计数器)_Python - Fatal编程技术网

Python 将数组转换为字典(计数器)

Python 将数组转换为字典(计数器),python,Python,假设我有一个数组,如下所示 arr = [1 , 2, 3, 4, 5] 我想把它转换成字典 { 1: 1, 2: 1, 3: 1, 4: 1, 5: 1 } 我这样做的动机是为了在O(1)时间内快速增加任何键的计数 非常感谢您的帮助。谢谢试试: from collections import Counter arr = [1, 2, 3, 4, 5] c = Counter(arr) 您可以使用以下方法: 您可以使用字典理解: {k: 1 for k in arr

假设我有一个
数组
,如下所示

arr = [1 , 2, 3, 4, 5]
我想把它转换成
字典

{
  1: 1,
  2: 1,
  3: 1,
  4: 1, 
  5: 1
}
我这样做的动机是为了在O(1)时间内快速增加任何键的计数

非常感谢您的帮助。谢谢

试试:

from collections import Counter

arr = [1, 2, 3, 4, 5]
c = Counter(arr)
您可以使用以下方法:


您可以使用字典理解:

{k: 1 for k in arr}

我认为它更精确,而且当数组中的元素重复时它仍然有效。

您应该使用。如果您使用
计数器
,请记住这会导致计数器对象而不是字典。我希望是个错误…:特别是OP明确要求提供字典,而不是其他类的实例。大多数答案都是不相关的。是的,我想人们只是想将计数器集合引入OP(至少这是我的动机)错误的答案,这将始终以“1”作为计数。就我所理解的OP问题而言,这一步是初始化字典,以便将来增加计数。也许我们应该让OP自己决定答案是否正确。嗨,伙计们。是的,我只是想初始化字典,以便以后可以增加它,这样这个解决方案对我来说很好。不过,我也会注意计数器的功能。
>>> 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]
>>> dict.fromkeys(arr,1)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1}
>>> 
{k: 1 for k in arr}
arr = [1 , 2, 3, 4, 5]
print({p: arr.count(p) for p in arr})