我正在尝试获取列表列表中的项目计数,并将这些计数添加到Python中的字典中。我已经成功地创建了列表(这是单个广告查看记录的所有可能出现的组合的列表)和一个字典,其键等于可能出现的所有值,现在我需要计算每次出现和更改的次数字典中的值到列表列表中相应键的计数。这是我所拥有的:
import itertools
stuff=(1,2,3,4)
n=1
combs=list()
while n<=len(stuff):
combs.append(list(itertools.combinations(stuff,n)))
n = n+1
viewers=((1,3,4),(1,2,4),(1,4),(1,2),(1,4))
recs=list()
h=1
while h<=len(viewers):
j=1
while j<=len(viewers[h-1]):
recs.append(list(itertools.combinations(viewers[h-1],j)))
j=j+1
h=h+1
showcount={}
for list in combs:
for item in list:
showcount[item]=0
for k, v in showcount:
for item in recs:
for item in item:
if item == k:
v = v+1
我尝试了多种不同的方法来执行此操作,并且通常会得到“太多值无法解包”错误,或者根本不会填充错误。张贴了几个类似的问题,但是我对Python还是很陌生,但是没有一个问题能够真正解决我所需要的足够的知识。非常感谢。
使用aCounter
而不是普通的dict来计算事物:
from collections import Counter
showcount = Counter()
for item in recs:
showcount.update(item)
甚至:
from collections import Counter
from itertools import chain
showcount = Counter(chain.from_iterable(recs))
如您所见,这使您的代码 大大 简化了。
问题内容: 蟒蛇 我有一个清单清单。喜欢 我想计算每个列表在主列表中出现了多少次。 我的输出应该像 问题答案: 只需使用来自:
问题内容: 我有一个字典列表: 如何通过匹配name =’Tom’来有效地找到索引位置[0],[1]或[2]? 如果这是一维列表,则可以执行list.index(),但是我不确定如何通过搜索列表中dict的值来进行操作。 问题答案: 如果需要从名称重复获取,则应按名称对它们进行索引(使用字典),这样 get 操作的时间为O(1)。一个想法:
问题内容: 如何计算一个单词出现在字符串列表中的次数? 例如: 单词“句子”的结果是2 问题答案: 使用一个对象并在空白处分割单词。您可能还希望小写单词,并删除标点符号: 或使用仅与单词字符匹配的正则表达式: 现在,您有了一本包含每个单词计数的字典。 演示:
从目标字符串的列表中查找字符串出现次数的最佳方法是什么?具体来说,我有一个列表: 我想进行优化以最小化速度和内存使用,如果这有所作为的话。就大小而言,我预计最终可能包含数百个子字符串。
rank ▲ ✰ vote url 49 432 198 616 url 通过列表中字典的值对列表进行排序 我的到了一个字典的列表,我想对字典的值进行排序. [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}] 对name进行排序,应当是: [{'name':'Bart', 'age':10}, {'name':'Homer', 'age
问题内容: 问题 我正在以以下方式创建一个空列表作为值的字典。 字典看起来像这样。 当我将一个值附加到一个列表时,此示例将值附加到所有列表。 问题 我的问题分为两部分。首先,为什么会这样?第二,我该怎么办?也就是说,如何将一个值仅附加到一个列表中? 我想象在创建字典时,我使所有列表都指向同一个对象。但是我不明白怎么回事,因为当我输入而不是在字典创建中,然后添加值而不是附加值时,这些值的行为会不同,