KeyError:0,在运行while循环时

时间:2019-10-17 19:50:50

标签: python python-3.x list pycharm

我正在尝试创建功能,现在我的代码被卡在一个点上,给出此错误:

in stochasticUniversalSampling
    if fitness_prob[j] > points[i]:
KeyError: 0

我正在尝试为每个染色体分配长度与其适应度相等的范围,并在前一个染色体的终点之后指定一个起点(例如,第一个染色体0-1.53​​,第二个染色体1.54-2.26,第三个染色体2.27- 3.42等)。选择范围包含标记的染色体(请注意,一条染色体可能具有2个标记,在这种情况下,它会被选择两次)。

city.txt

5
1 823170 415922
2 793699 274913
3 981665 218777
4 878910 431320
5 910125 405907

1 个答案:

答案 0 :(得分:1)

创建fitness_prob时,您将self.population中的值用作键。但是在while循环中,当应该使用值时,您将fitness_prob的索引用作键。更改:

if fitness_prob[j] > points[i]:

if fitness_prob[self.population[j]] > points[i]: