如何解决Python列表理解-生成多个数据
import random
M = 4
N = 3
def generisanjevol1(nekalista,m):
return random.choices(nekalista,k=m)
def generisanjevol2(nekalista,m,n):
#obj = [[random.choice(nekalista,k=m)] for i in range(N)]]
obj = [[random.choice(nekalista)] for i in range(n)]
return obj
#def poredjenje()
listaslova = ['A','B','C','D','E']
lista = generisanjevol1(listaslova,M)
lista2 = generisanjevol2(listaslova,M,N)
print(lista)
print(lista2)
所以上面是我的尝试(generisanjevol2(nekalista,m,n)...
接下来我要做的是:
我想生成N个数组,并用random.choice函数生成的字符串填充它们,但它们仍必须是listaslova的字符串)
也许让我们说N = 3(N代表数组的数量)和M = 4(M代表数组的长度),我应该得到类似的信息(数组中不必是相同的数据,因为它们是随机生成的) :
[A,C,D,E]
([A,E,D] [E,B,A] [E,A])
但是我得到的结果如下:
[A,C]
[[B],[D],[E]]
解决方法
注释行中的错误是因为您有多余的]
。并且random.choice
应该是random.choices
。
但是您也不应在对random.choice()
的调用周围添加其他列表。它已经返回了列表。
def generisanjevol2(nekalista,m,n):
obj = [random.choices(nekalista,k=m) for i in range(n)]
return obj
,
就像@Barmar说的那样,您确实有一个额外的[]
。
您的函数应如下所示:
def generisanjevol2(nekalista,n):
...: obj = [random.choices(nekalista,k=m) for i in range(n)]
...: return obj
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。