Python-如何计算对象中数字的出现次数?
我需要计算一个数字在一个对象中出现的次数。不知道怎么做 我可以通过以下方式访问这些值:Python-如何计算对象中数字的出现次数?,python,Python,我需要计算一个数字在一个对象中出现的次数。不知道怎么做 我可以通过以下方式访问这些值: >>> formset_sample.forms[0]._raw_value('type') >>> '1' >>> formset_sample.forms[1]._raw_value('type') >>> '2' >>> formset_sample.forms[2]._raw_value('type') >
>>> formset_sample.forms[0]._raw_value('type')
>>> '1'
>>> formset_sample.forms[1]._raw_value('type')
>>> '2'
>>> formset_sample.forms[2]._raw_value('type')
>>> '2'
此对象的len()=3:
如何获得数字2的出现次数?在这种情况下,数字“2”正好出现两次
一些线索
致以最诚挚的问候,这将为您提供一个数字列表,并计算2的数量:
l = [ f._raw_value('type') for f in formset_sample.forms ]
l.count('2') # I am assuming 2 is a string, or
l.count(2) # if the number is stored as an integer
现在您可以使用
l
进行排序、切片等。我不清楚您想要实现什么。但是,map
功能可能会帮助您:
values = map(lambda x: x._raw_value('type'), formset_sample.forms)
# alternate Syntax:
values = [form._raw_value('type') for form in formset_sample.forms]
print values
应该给你数组
['1', '2', '2']
您可以将其输入到计数器中
:
from collections import Counter
print Counter(values)
应该是
{ '1': 1, '2': 2 }
因此,如果您想将所有内容放在一行中:
Counter([form._raw_value('type') for form in formset_sample.forms])["2"]
这将生成一个字典,其中不同类型为键,出现次数为值:
import defaultdict
d = defaultdict(int)
for rv in formset_sample.forms:
d[rv._raw_value_('type')] += 1
计数器(form.\u原始值('type')用于formset\u sample.forms中的表单)['2']
也应该可以工作。没有数字2。有一个字符串“2”(其中包含一个数字)。注意:一般来说,前导\uu
表示该属性是私有的,不应在对象类(或其子类)之外使用。
import defaultdict
d = defaultdict(int)
for rv in formset_sample.forms:
d[rv._raw_value_('type')] += 1
a = {1:1, 2:1, 3:2}
print a.values().count(1)
count = sum(f._raw_value('type') == '2' for f in formset_sample.forms)