我在写遗传算法的时候遇到了一个问题,当我试图模拟变异过程时:
1所以我选择随机的position = randint(0, len(genes)-1)
其中基因的格式为“10101”,1和0是随机设置的
2我试图用0或1来代替1或0来模拟突变,然后我得到了很多错误。你知道吗
我试着这样做:
position = randint(0, len(genes)-1)
if(genes[position]=="1"):
genes[position] = "0"
if(genes[position]=="0"):
genes[position] = "1"
那是行不通的。 我还尝试了:
if(genes[position_to_mutate]=="1"):
genes_new = ""
if(position_to_mutate == 0):
genes_new = "0" + genes[1:len(genes)]
print "genes z zerowym nowym : ", genes
if(position_to_mutate!=0):
genes_new = genes[0:position_to_mutate] + "0" + genes[position_to_mutate+1:len(genes)]
if(position_to_mutate==4):
genes_new = genes[0:len(genes)-2] + "0"
那么,如何用一个符号替换另一个符号,通过它在字符串中的位置得到它呢?你知道吗
正如其他人所指出的,字符串是不可变的。但是,可以使用slice操作符的细节来缩短版本:
python中的字符串是不可更改的。你知道吗
因此需要创建新实例进行修改。你知道吗
或者您可以使用
list
来实现这个目的,并在修改后将其转换回str
。你知道吗字符串是不可变的,您需要重新分配,您可以执行以下操作:
相关问题 更多 >
编程相关推荐