如何生成大小为 M 且仅包含提供列表中的元素的数组?

我想实现什么目标?


我正在尝试生成 size 的数组M,但该数组的元素只能是可以在提供的列表中找到的元素。

我的Python代码:


import random

def generisanjevol1(nekalista):

 return random.choice(nekalista)



listaslova=['A','B','C','D','E']


for x in range(4):

 lista=[generisanjevol1(listaslova)]


print(lista)

输出:


['E']

如图所示,在我得到的输出中只有一个元素,而不是 4 个(由于 for 循环,我预计是 4 个)


想要的输出示例:


['B', 'E', 'A', 'C']

对我想要实现的目标进行更深入的解释:


我有 1 个 5 个字符串的数组,我试图将该数组传递给函数 (generisanjevol1),在那里我应该生成大小为M的数组(由 random.choice() 函数生成,但该数组应该仅从这 5 个字符串生成,其中在数组中(listaslova))任何人都可以帮助我如何准确地做到这一点以及如何将多个“数据”保存到一个数组中?谢谢


眼眸繁星
浏览 118回答 1
1回答

哆啦的时光机

如果我理解正确,您想要生成仅包含提供列表中的元素的大小的数组M。您可以random.choices()与k=参数一起使用:import randomM = 4def generisanjevol1(nekalista, m):    return random.choices(nekalista, k=m)listaslova=['A','B','C','D','E']lista=generisanjevol1(listaslova, M)print(lista)打印(例如):['A', 'E', 'C', 'E']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python