【问题标题】:How to create nested lists with random numbers? [duplicate]如何使用随机数创建嵌套列表? [复制]
【发布时间】:2020-11-18 01:20:06
【问题描述】:

如果你知道如何解决这个问题,请:我需要添加嵌套列表,每个列表都有随机生成的数字,但在同一范围内。如果我按原样运行我的代码,它会添加嵌套列表,每个列表的正确长度为 6 个数字,但问题是列表中的所有数字都是相同的!输出是这样的:

[
    [27, 2, 23, 12, 9, 2, 28, 31],
    [27, 2, 23, 12, 9, 2, 28, 31],
    [27, 2, 23, 12, 9, 2, 28, 31],
    [27, 2, 23, 12, 9, 2, 28, 31]
]

每次在 for 循环中调用函数时,如何设法生成新数字?

lottery_numbers = []
numbers_list = []

def num_generator():
   for num in range(0, 2):
      random_number = random.randint(1, 40)
      numbers_list.append(random_number)
      lottery_numbers.append(numbers_list)
  

for number in range(0, 4):
  num_generator()

【问题讨论】:

  • 您的函数还有一个非常奇怪的行为,即每次运行时都会添加 2 个新条目(numbers_listlottery_numbers)。 “6个数字的正确长度”需要重新评估=)。您显示的输出与代码不匹配,它将是 8x8,而不是 4x8。

标签: python loops random nested-lists


【解决方案1】:

假设您希望一个列表中有 4 个嵌套列表,每个列表的长度为 6...

import random

x = [[random.randint(1,40) for i in range(6)] for i in range(4)]

print(x)
[
    [21, 41, 22, 14, 35, 0], 
    [13, 31, 25, 19, 35, 27], 
    [36, 29, 40, 37, 47, 49], 
    [12, 19, 5, 27, 48, 27]
]

使用列表推导式我们迭代 4 次,返回另一个随机生成的列表(嵌套列表组合)

【讨论】:

  • 没问题!如果您喜欢这个答案,您可以为未来的用户接受它:)。编码愉快!
【解决方案2】:

我尽量保留您的代码,但我认为这是您打算做的。

import random

lottery_numbers = []


def num_generator():
    numbers_list = []
    for num in range(0, 6):
        random_number = random.randint(1, 40)
        numbers_list.append(random_number)
    lottery_numbers.append(numbers_list)
  

for number in range(0, 4):
    num_generator()


print (lottery_numbers)

[[39, 8, 3, 35, 20, 11], [30, 38, 37, 22, 18, 8], [24, 13, 3, 20, 15, 24], [33, 24, 2, 38, 9, 14]]

【讨论】:

  • 感谢您的宝贵时间和帮助!我学习 Python 才 2 周,所以我还是把事情搞砸了)
猜你喜欢
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多