你如何计算一个项目从随机列表中出现的次数?

时间:2014-03-31 10:47:06

标签: python list random

你如何计算一个项目从随机列表中出现的次数?

因为目前我正在为团队要塞2做一个非拳击模拟器而且我已经完成了这样你可以得到一个随机奇怪的 99%机会或一个UNUSUAL 1 %的机会,我想知道如何计算你有多少异常没有装箱。

def no():
    print "thankyou for playing crate unboxing simulator!"
    time.sleep(1)
    print "copyright Tristan Cook"
    time.sleep(1)
    print "You unboxed.."
    time.sleep(1)

我在那里需要一些东西,说他们没有装箱的异常数量。我正在找东西我可以复制和粘贴因为我对python很新(这是我的第一个程序及其359行xD)

2 个答案:

答案 0 :(得分:0)

试试这个:

l =[...]
unusuals = l.count(unusual1)+l.count(unusual2)+...

答案 1 :(得分:0)

您可以使用count中的itertools

>>> l=[random.randrange(0,10) for i in range(100)]
>>> l
[7, 1, 8, 6, ..., 8, 4]

>>> from itertools import count
>>> dict([(i,l.count(i)) for i in l])
{0: 5, 1: 12, 2: 6, 3: 9, 4: 13, 5: 11, 6: 11, 7: 9, 8: 12, 9: 12}

并仅选择值<例如:10%:

>>> dict([(i,l.count(i)) for i in l if l.count(i)<(0.1*len(l))])
{0: 5, 2: 6, 3: 9, 7: 9}

编辑: 并且,正如Pablo Moretti所建议的那样collections.counter

>>> from collections import Counter
>>> c=Counter(l)
>>> [i for i in c if c[i]<(0.1*len(l))]
[0, 2, 3, 7]

>>> [(i, c[i]) for i in c if c[i]<(0.1*len(l))]
[(0, 5), (2, 6), (3, 9), (7, 9)]

并且有4个最不常见的元素:

>>> c.most_common()[:len(c)-5:-1]
[(0, 5), (2, 6), (7, 9), (3, 9)]
相关问题