如何使用dict理解来初始化模拟硬币翻转的字典?

时间:2015-01-14 07:31:44

标签: python dictionary list-comprehension

我正在制作一个硬币翻转模拟(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()

2 个答案:

答案 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)])