我有一个列表,我想要存储根据频率计数。
a=[[list1],[list2],[list3],[list1]]我所说的频率计数的意思是有效地创建一个具有唯一列表及其出现情况的可索引结构。
{
2: [list1]
1: [list2]
3: [list3]
}例如,当涉及到单个列表时,我们有一个具有唯一键值对的字典。
a=[1,2,3,4,6,2,2,1,3,6]
dict1={}
for i in a:
if(i in dict1):
dict1[i]+=1
else:
dict1[i]=1
#output : {1: 2, 2: 3, 3: 2, 4: 1, 6: 2}解决这个问题最好的办法是什么。提前谢谢。
发布于 2018-09-14 18:35:25
主要的问题是我无法散列列表来存储频率计数。因此,感谢Patrick在评论会议上提出的有益建议,我能够使用元组,因为它是一种可以使用的类型。
a=[[1,2,3],[1,3,2],[1,2,3],[3,2,1]]
di=[]
for i in a:
i=tuple(i)
di.append(i)
print(di)
dict1={}
for i in di:
if(i in dict1):
dict1[i]+=1
else:
dict1[i]=1
print (dict1)这不是一段雄辩的代码,但目前这是可行的。
发布于 2018-09-14 18:50:14
您可以将列表转换为元组,并将它们用作字典的键,字典看起来与问题中的代码几乎完全相同。
a=[[1,2,3],[1,3,2],[1,2,3],[3,2,1]]
d = {}
for l in a:
t = tuple(l)
if t in d:
d[t] += 1
else:
d[t] = 1
print(d)https://stackoverflow.com/questions/52336776
复制相似问题