你怎么会从一个项目中随机出现一个计数项目?

2024-04-16 14:26:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

因为目前我正在为堡垒2队做一个非拳击模拟器,我已经做了,这样你就可以得到一个随机的奇怪的99%机会或一个不寻常的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)


Tags: 项目no列表fortimedefsleep模拟器
2条回答

您可以从itertools使用count。在

>>> 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%:

^{pr2}$

编辑: 而且,正如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)]

试试这个:

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

相关问题 更多 >