игра в города на python

Мне нужна помощь с этим кодом, код для игры в города.

Проблема только в том что бот использует любые города из списка , даже те которые уже были, как это исправить?

И вторая проблема в том что игрок может писать города на любые буквы, а не только на ту которая была последней у слова перед этим?

Если можете подскажите как

вот код:

# This Python file uses the following encoding: utf-8
import random
import time
print("Введите город:")
while True:
   # This Python file uses the following encoding: utf-8
   test_list = ['Арзамас', 'Анапа', 'Москва', 'Самара','Нижний Новгород','Саров','Сочи','Ялта','Волгоград','Дзержинск','Киров','Краснодар','Ростов','Владимир','Крымск','Красноярск','Азов','Городец','Белгород','Воронеж','Санкт-Петербург','Галич','Гагарин','Дмитров','Кисловодск','Клин','Ковров','Муром','Иваново','Ижевск','Ивангород','Жуков','Жигулевск']
   str=input()
   if str in test_list:
      lister = list(str)
      cherck = lister[-1]
      track = lister[1]
      res = [idx for idx in test_list if idx[0].lower() == cherck.lower()]
      prers = random.choice(res)
      trr = lister[-1]
      rers = list(prers)
      print(prers)
      res = [idx for idx in test_list if idx[0].lower() == cherck.lower()]
      time.sleep(0.1)
      res = [idx for idx in test_list if idx[0].lower() == cherck.lower()]
   else:
      print("Не найдено города с таким названием,попробуйте ещё раз")

Ответы (1 шт):

Автор решения: Danis
import random

test_list = ['Арзамас', 'Анапа', 'Москва', 'Самара','Нижний Новгород','Саров','Сочи','Ялта','Волгоград','Дзержинск','Киров','Краснодар','Ростов','Владимир','Крымск','Красноярск','Азов','Городец','Белгород','Воронеж','Санкт-Петербург','Галич','Гагарин','Дмитров','Кисловодск','Клин','Ковров','Муром','Иваново','Ижевск','Ивангород','Жуков','Жигулевск']

while True:
    str0 = input('Введите город: ')
    
    if str0 in test_list:
        test_list.remove(str0)
    else:
        print('неверно')
        continue
        
    lst0 = []
    for city in test_list:
        if city[0].lower() == str0[-1]:
            lst0.append(city)
    if len(lst0) != 0:
        city = random.choice(lst0)
        print(city)
        test_list.remove(city)
→ Ссылка