如何从一个在Python中生成多个列表的循环中获取一个列表?

时间:2016-02-26 00:55:38

标签: python list

这是我的Python代码,我希望occurence成为一个大的列表。当我运行它时,我只回到许多一位数的列表,我尝试将print语句移出循环,但我只得到一个答案。有什么想法吗?

import random

rolls = 0
occurrence = []

for i in range(0, 1000):
    dice1 = random.randrange(1, 7)
    dice2 = random.randrange(1, 7)
    rolls = rolls + 1
    occurrence = [dice1 + dice2]
    print(occurrence)    

4 个答案:

答案 0 :(得分:2)

您可以使用append()

import random

rolls = 0
occurrence = []

for i in range(0, 1000):
    dice1 = random.randrange(1, 7)
    dice2 = random.randrange(1, 7)
    rolls = rolls + 1
    occurrence.append(dice1 + dice2)

print(occurrence)

答案 1 :(得分:1)

这将为您提供长度为2个元组的列表,其中随机数介于1和7之间。

occurences = [(random.randrange(1, 7) , random.randrange(1, 7)) for i in range(1000)]

答案 2 :(得分:0)

从我的问题可以看出,这应该有效:

import random

rolls = 0
occurence = []

for i in range(0,1000):
    dice1 = random.randrange(1,7)
    dice2 = random.randrange(1,7)
    rolls = rolls + 1
    occurence.append(dice1 + dice2)  #you need to add each value to the list with append
print (occurence)

使用时:

occurence = [dice1 + dice2]

每次for循环运行时都会创建一个新列表,因此for循环结尾处的结果是一个带有单个数字的列表。

答案 3 :(得分:0)

一种相当pythonic的方式是使用list comprehension

occurence = [ (random.randrange(1,7)+random.randrange(1,7)) for _ in range(1000)]