我有一个初始列表,包括1000个列表,有些是空的,有些不是。我试图分散2000个浮点数在这些空列表之间随机排列(empty_list45,empty_list2,...,empty_randn),而不是按顺序排列(empty_list1,empty_list1,...,empty_listn)。
这是我的尝试:
#the list containing lists.
folder = [[]] * 1000
for i in range(len(newOPsys_i)):
folder[newOPsys_i[i]] = (newOP[i])
#list of indices of empty lists in folder, where folder is the list comprising 1000 lists that may or may not be empty
empty = []
for i in range(len(folder)):
if not folder[i]:
empty.append(i)
#function that pulls a random index from any called list
def rand(mylist):
rando = random.randint(0,len(mylist)-1)
return(rando)
#my attempt at appending 2000 floats to random empty lists in folder
for i in range(0,2000):
x = empty[rand(empty)]
print(folder[x])
folder[x].append(match[x][random.randint(0,len(match[x])-1)]) #match is a separate list where I wish to pull the floats from, and place them into the empty lists.
我的输出看起来像:
[]
[3.9]
[3.9, 7.8]
[3.9, 7.8, 54.9]
从印刷品来看,似乎正在发生的事情是,在第一次迭代中,找到了一个空列表,然后附加了一个浮点数。在下一次迭代中,将随机找到另一个空列表,但该空列表的后面是上一次迭代的浮点数以及新的浮点数。这不是我想发生的事情,我只想将那些单个随机浮点数附加到每个迭代中。有什么见解吗? 提前致谢。
答案 0 :(得分:1)
import random
f = [[1, 2, 3], [6, 7, 8], [10, 67, 89], [34, 54, 32, 76], [24, 90, 9, 4, 2]]
for _float in <2000 floats>:
integer = random.randint(0, len(f)-1) #this will shuffle your list of lists
f[integer].append(_float)
由于要对列表进行混排,因此最后一个列表将是随机的,您可以将浮点数附加到最后一个列表或与此相关的任何其他索引上。