Python 列表理解 - 生成多个数据
Python list comprehension - generating multiple data
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,C,E,D] [E,C,B,A] [E,D,D,A])
但我得到的结果如下:
[A,D,E,C]
[[B],[D],[E]]
P.S 如果我尝试评论的那个,我会得到一个错误
您注释行中的错误是因为您多了一个 ]
。 random.choice
应该是 random.choices
.
但是您也不应该在对 random.choice()
的调用周围放置另一个列表。它已经 returns 一个列表。
def generisanjevol2(nekalista, m,n):
obj = [random.choices(nekalista,k=m) for i in range(n)]
return obj
就像@Barmar 说的,你确实多了一个[]
。
您的函数应如下所示:
def generisanjevol2(nekalista, m,n):
...: obj = [random.choices(nekalista, k=m) for i in range(n)]
...: return obj
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,C,E,D] [E,C,B,A] [E,D,D,A])
但我得到的结果如下:
[A,D,E,C]
[[B],[D],[E]]
P.S 如果我尝试评论的那个,我会得到一个错误
您注释行中的错误是因为您多了一个 ]
。 random.choice
应该是 random.choices
.
但是您也不应该在对 random.choice()
的调用周围放置另一个列表。它已经 returns 一个列表。
def generisanjevol2(nekalista, m,n):
obj = [random.choices(nekalista,k=m) for i in range(n)]
return obj
就像@Barmar 说的,你确实多了一个[]
。
您的函数应如下所示:
def generisanjevol2(nekalista, m,n):
...: obj = [random.choices(nekalista, k=m) for i in range(n)]
...: return obj