これは私のコードです。あなたの誰かがそれを見て何が間違っているのかが分かりましたか?反復中に辞書の長さが変化し続けるエラー。どのように私はこれを修正するのですか?基本的に何が起こっているのは、私はものをうまく追加することができ、彼らはうまく動作しますが、実際に飛ぶために行くとき(死ぬために)、辞書のサイズが変わってしまうので動かないと言います。助けてください私の辞書で何かを克服しようとしていると
import random
from random import randint
deathage = 30
startingpop = 3
rateofreproduction = 0
howmanynewflies = 2
def gennew():
i = 0
list = []
while i < 11:
i = i + 1
x = randint (1,4)
if x == 1:
list.append("A")
elif x == 2:
list.append("T")
elif x == 3:
list.append("C")
else:
list.append("G")
return list
population = {}
def createfly (x):
return ({"dna":x , "age":0})
for i in range(0,startingpop):
population[i] = (createfly(gennew()))
print (population)
def reproduce (x , y):
combos = []
childfly = []
for i in range (0,11):
combos.append((population[x]["dna"][i], population[y]["dna"][i]))
for i in range(0,len(combos)):
x = randint(0,1)
childfly.append(combos[i][x])
return childfly
#each gener**strong text**ation what happens
while len(population) > 0:
for i in population:
population[i]["age"] = population[i]["age"] + 1
if population[i]["age"] > deathage:
population.pop(i)
flies = []
for i in population:
flies.append(i)
for i in range(max(flies), (max(flies) + howmanynewflies)):
whichflyone = int(random.choice(list(population.keys())))
whichflytwo = int(random.choice(list(population.keys())))
population [i] = createfly(reproduce(whichflyone,whichflytwo))
print()
print()
print(population)
ありがとうございました –
私はそれがあなたの満足度に答えているならば、正しいと印を付けることを忘れないでください。これは他のユーザーが既に答えられた質問に答えるのを避けます。 – Darkstarone