【发布时间】:2021-06-22 10:34:41
【问题描述】:
我正在尝试将一个列表拆分为 2 个列表,分成不均匀的拆分。我通过应用最后一行中看到的 iter() 函数来完成这项工作:
def crossover():
end = len(bestPop) - 1
for i in range(0, end, 2):
crossPoint = (random.randint(1, len(range(stringLen - 2))))
crossPoint2 = stringLen - crossPoint
listA = pop[bestPop[i]]
listB = pop[bestPop[end - i]]
sizes = [crossPoint, crossPoint2]
it = iter(listA)
print([[next(it) for _ in range(size)] for size in sizes])
这会为 20 的总和创建一个随机部分(例如 17 和 3 以及 6 和 14),以便拆分列表。这成功并打印出来:
[['1', '0', '0', '0', '0', '1', '1', '1', '1', '1', '0', ' 0', '1', '0', '0', '1', '1'], ['1', '1', '1']]
但是我想知道如何将列表一对一的列表变量保存并将两个列表变量保存到另一个。
任何建议都非常感谢!谢谢
【问题讨论】:
-
如果你这样做会怎样:lists=[[next(it) for _ in range(size)] for size in sizes] variable1= lists[0] variable2=lists[1]
-
我尝试了这个初始化并且我得到了这个错误“文件“main.py”,第 66 行,在
列表 = [[next(itA) for _ in range(size)] for size大小] StopIteration" -
如果你不介意,你能分享整个代码吗?