【问题标题】:Generate a list of 6 random numbers between 1 and 6 in python在python中生成1到6之间的6个随机数的列表
【发布时间】:2016-01-18 10:07:02
【问题描述】:

所以这是针对我的一门课的练习题。我想生成一个 1 到 6 之间的 6 个随机数的列表。例如,startTheGame() 应该返回 [1,4,2,5,4,6]

我想我快要得到它了,但我只是不确定如何对其进行编码,以便将所有 6 个数字都附加到列表中然后返回。任何帮助表示赞赏。

import random
def startTheGame():
    counter = 0
    myList = []
    while (counter) < 6:
        randomNumber = random.randint(1,6)

    myList.append(randomNumber)

    counter = counter + 1

    if (counter)>=6:
        pass
    else:

        return myList

【问题讨论】:

  • 如果它解决了您的问题,请接受答案

标签: python random numbers


【解决方案1】:

使用list comprehension

import random

def startTheGame():

    mylist=[random.randint(1, 6) for _ in range(6)]
    return mylist

列表推导式是 Python 提供的最强大的工具之一。它们被认为是非常 Python 的,它们使代码非常具有表现力。

考虑以下代码:

counter = 0
myList = []
while (counter) < 6:
    randomNumber = random.randint(1, 6)

myList.append(randomNumber)

counter = counter + 1

if (counter)>=6:
    pass
else:
    return

我们将分几个步骤重构此代码,以更好地说明列表推导的作用。我们要重构的第一件事是带有初始化和中止标准的 while 循环。这可以通过 for in 表达式更简洁地完成:

myList = []
for counter in range(6):
    randomNumber = random.randint(1, 6)
myList.append(randomNumber)

现在将这段代码变成列表理解的步骤:将 for 循环移动到 mylist 中。这消除了附加步骤和分配:

[random.randint(1, 6) for _ in range(6)]

_ 是一个变量名,就像其他任何变量一样,但在 python 中,使用 _ 来表示未使用的变量是惯例。把它想象成一个临时变量。

【讨论】:

  • 好了好了!太感谢了。你能解释一下“for _ in range(6)”的作用吗?
  • 对象没有“样本”属性。我收到此错误
猜你喜欢
  • 2013-04-16
  • 2023-03-11
  • 1970-01-01
  • 2014-05-08
  • 2014-04-11
  • 1970-01-01
  • 2010-12-06
  • 2013-07-24
  • 2012-12-10
相关资源
最近更新 更多