Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-如何计算对象中数字的出现次数?_Python - Fatal编程技术网

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)