首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表列表的频率计数

列表列表的频率计数
EN

Stack Overflow用户
提问于 2018-09-14 17:32:44
回答 2查看 605关注 0票数 0

我有一个列表,我想要存储根据频率计数。

代码语言:javascript
复制
a=[[list1],[list2],[list3],[list1]]

我所说的频率计数的意思是有效地创建一个具有唯一列表及其出现情况的可索引结构。

代码语言:javascript
复制
{
  2: [list1]
  1: [list2]
  3: [list3]
}

例如,当涉及到单个列表时,我们有一个具有唯一键值对的字典。

代码语言:javascript
复制
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}

解决这个问题最好的办法是什么。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-14 18:35:25

主要的问题是我无法散列列表来存储频率计数。因此,感谢Patrick在评论会议上提出的有益建议,我能够使用元组,因为它是一种可以使用的类型。

代码语言:javascript
复制
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)

这不是一段雄辩的代码,但目前这是可行的。

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 18:50:14

您可以将列表转换为元组,并将它们用作字典的键,字典看起来与问题中的代码几乎完全相同。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52336776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档