【发布时间】:2022-01-12 22:20:52
【问题描述】:
我正在编写代码来随机掷骰子,然后返回每个数字的掷骰次数。
我让它作为一个函数工作,但我想知道如何将它转换为列表理解。
这是我正在使用的功能:
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)
请注意,roll() 是我在骰子类中创建的方法。
我得到的最接近工作列表理解的是:
result = die.roll()
results = [result for value in range(1000)]
它确实掷骰子,但它只掷一个数字 1,000 次,而不是六个数字,随机数加起来 1,000 次。
那么这个for循环是否可以变成一个列表理解,如果可以的话怎么办?
【问题讨论】:
-
思考
collections.Counter -
为什么将
result = die.roll()放在列表复制范围之外?在任何情况下,是的,这可以直接转换,[die.roll() for roll_num in range(1000)],尽管在循环和理解中,_会习惯性地用于代替roll_num用于不打算使用的变量
标签: python python-3.x for-loop list-comprehension