给定color = [“red”,“blue”,“green”,“yellow”,“purple”,“orange”,“white”,“black”]生成并打印50种随机颜色的列表 . 您将需要使用随机模块来获取随机数 . 使用范围和 Map 生成所需的数字量 . 然后使用map将数字转换为颜色 . 打印结果 .
这是一个我已经给出的问题,到目前为止这是我的代码
colour = [ "red", "blue", "green", "yellow", "purple", "orange", "white", "black" ]
number=random.randint(1,9)
number.range(50)
我假设这个变量在1-9之间选择随机数,然后生成其中的50个?我现在需要一些方法将数字与颜色联系起来..我知道这个问题很模糊,但如果有人能指出我正确的方向,那就太棒了!
4 回答
出于某种原因,您的问题需要使用
map
. 如果不直接给出答案,很难帮助解决这个问题,特别是因为这些操作是单行的 . 首先,使用map和range获取所需范围内的随机数列表:注意不使用lambda,
x
的参数 . 这至少是我不在这里使用 Map 的原因之一 . 然后,使用数字列表,将索引函数映射到数字上以获取颜色列表:灵魂检查在列表理解中使用
random.choice()
给出的答案是迄今为止确定答案的最佳方法 .你需要的是使用
random.choice(seq)
50次传递它colour
list作为参数 .像这样:
random.choice(seq)
从seq
返回随机选择的元素 .您可以使用简单的列表理解:
colour[i]
表示colour
列表中的i
元素 . 创建一个随机整数,从0到列表长度减去一个len(colour)-1
,如您所建议的那样random.randint
. 用range(1,50)
重复50次 . 列表推导中的虚拟迭代器值x
只是被忽略 .希望这可以帮助!
如果你想要n个随机的十六进制颜色,试试这个: