Python 3.x 将计数添加到dict值
我试图得到一个{0:0,1:2,2:2,3:1,4:1}的结果,但是得到 TypeError:“int”对象不可编辑Python 3.x 将计数添加到dict值,python-3.x,dictionary,Python 3.x,Dictionary,我试图得到一个{0:0,1:2,2:2,3:1,4:1}的结果,但是得到 TypeError:“int”对象不可编辑 任何善良的灵魂能指出我的错误吗?谢谢 您可能想这样做: arr = [1,1,3,2,2,4] d={i:[] for i in range(max(arr)+1)} for i in arr: if i in d.keys(): d[i] += 1 或者尝试更有效的方法(您将找不到不在数组中的键): 您可能想这样做: arr = [1,1,3,2,2
任何善良的灵魂能指出我的错误吗?谢谢 您可能想这样做:
arr = [1,1,3,2,2,4]
d={i:[] for i in range(max(arr)+1)}
for i in arr:
if i in d.keys():
d[i] += 1
或者尝试更有效的方法(您将找不到不在数组中的键):
您可能想这样做:
arr = [1,1,3,2,2,4]
d={i:[] for i in range(max(arr)+1)}
for i in arr:
if i in d.keys():
d[i] += 1
或者尝试更有效的方法(您将找不到不在数组中的键):
您只需要更改列表的一部分,为每个数字创建0,直到最大数字,而不是空列表
from collections import Counter
arr = [1,1,3,2,2,4]
d = Counter(arr)
或者在arr
列表和列表计数中使用最大数字范围的字典理解
arr = [1,1,3,2,2,4]
d={i:0 for i in range(max(arr) + 1)}
for i in arr:
if i in d.keys():
d[i] += 1
print(d)
输出
{v: arr.count(v) for v in range(max(arr) + 1)}
您只需要更改列表的一部分,为每个数字创建0,直到最大数字,而不是空列表
from collections import Counter
arr = [1,1,3,2,2,4]
d = Counter(arr)
或者在arr
列表和列表计数中使用最大数字范围的字典理解
arr = [1,1,3,2,2,4]
d={i:0 for i in range(max(arr) + 1)}
for i in arr:
if i in d.keys():
d[i] += 1
print(d)
输出
{v: arr.count(v) for v in range(max(arr) + 1)}