我正在制作一个硬币翻转模拟(1个是头部和0个尾部),我想知道我是否可以使用dict理解在一行中执行此代码:
from random import randint
def flip(trials = 1000):
adict = {'0' : 0, '1' : 0}
for i in range(trials):
k = randint(0,1)
adict[str(k)] += 1
print adict
flip()
答案 0 :(得分:3)
我使用collections.Counter
和生成器表达式(而不是dict理解)
from collections import Counter
Counter(str(randint(0, 1)) for _ in range(trials))
可以在一行上完成所有事情,但在你的情况下它会变得非常难看。
答案 1 :(得分:1)
这给你一个元素。你需要减去得到另一个元素:
sum([randint for x in range(0, 100)])