如何将此 Python for 循环转换为列表理解

How do I convert this Python for loop into a list comprehension

我正在编写代码来随机掷骰子,然后 return 每个数字被掷出的次数。

我将其作为函数运行,但我想知道如何将其转换为列表理解。

这是我正在使用的功能:

results = []
for roll_num in range(1000):
    result = die.roll()
    results.append(result)

请注意,roll()是我在class中为骰子制作的方法。

我得到的最接近工作列表理解的是:

result = die.roll()
results = [result for value in range(1000)]

确实会掷骰子,但它只会 掷一个数字 1,000 次 而不是六个数字,随机数加起来最多 1,000 次。

那么这个 for 循环是否可以变成一个列表推导式,如果可以怎么办?

我想你要找的是:

results = [die.roll() for _ in range(1000)]

请注意,_ 通常用作您并不真正关心的值的替代。

好像你有?

results = [random.randint(1,6) for value in range(10)] 有效,所以

results = [die.roll() for value in range(1000)] 应该也是。

唯一的问题是您分配了 die.roll(),这导致结果是原始 return 值而不是函数调用。