Вы переписываете список с каждой итерацией. Вместо этого вы можете проверить, существует ли ключ в dict, если не создать новый ключевой список
Ex:
image_dict={}
for index, item in enumerate(data.ImageID):
if item not in image_dict:
image_dict[item] = []
image_dict[item].append((data.XMax[index], data.XMin[index], data.YMax[index], data.YMin[index]))
def hangman():
j=0
word='weekend'
new_word=len(word)*'_'
while j<20:
letter=input('Give a letter: ')
print("letter =" + letter)
for i in range(len(word)):
if word[i]==letter and new_word[i]=='_':
new_word = list(new_word)
new_word[i] = letter
new_word = ''.join(new_word)
if new_word.replace(' ','')==word:
print('You won!')
break
j+=1
print(new_word)
hangman()
Этот код делает то, что вы хотите сделать. Ошибки в исходном коде:
`new_word=len(word)*'_ '`
(обратите внимание на пробел в конце. Это испортило индексацию)
new_word=new_word.replace(new_word[i],letter)
Это привело к замене new_word
на letter
! Таким образом, стало wwwwwww
(если кто-то вошел в w
)
new_word = list(new_word)
new_word[i] = letter
new_word = ''.join(new_word)
Простой способ понять символ по определенному индексу - это преобразовать его в список, а затем заменить на letter
в этот индекс. Мы конвертируем список обратно в строку позже.