Estou fazendo um exercício do curso de computação, e estamos trabalhando em equipe. Tenho aprendido bastante Python, mas existem comandos que não entendo. Por exemplo o código abaixo não está comparando os valores que estão na lista com os do dicionário história, não estou entendendo o porquê.
Segue o código abaixo:
from time import sleep
def linha():
print('~'*30)
def mostrarTemas(): #No código principal, vai servir a função de ewerton
for i in range(len(historias)):
if not historias[i]['tema'] in lista:
lista.append(historias[i]['tema']) # Se tiver tema repetido - Deixa apenas um
for p, i in enumerate(lista):
print(f' {p + 1}- \033[1;33m{i}\033[m') # Mostra pro usuário os temas disponiveis
sleep(0.3)
#Lista de histórias, todas conforme o professor cadastrar.
lista = []
historias = [{'tema':'Princesas', 'titulo':'A princesa', 'A princesa':'Texto da Princesa aqui'},
{'tema':'Super Herois', 'titulo':'Iron Man 2', 'Iron Man 2':'A historia aqui'},
{'tema':'Princesas', 'titulo':'A princesa 2', 'A princesa 2':'Texto da princesa 2 aqui'},
{'tema':'Carros', 'titulo':'Carros 1', 'Carros 1':'Texto para carros 1'}]
linha()
mostrarTemas()
linha()
escolha = int(input(('Digite o número que está relacionado com o tema a sua escolha: ')))
historia = dict()
for i in range(len(historias)):
if escolha == i+1:
# se tiver mais de um tema igual faz um random pra escolher uma aleatoriamente
for historia in historias: #Problema é o que quando existe um tema repetido
print(historia)
if lista[i] in historia: # Nunca dar True
print(historia)
print(f'\033[1;30m{historia["titulo"]}\033[m') #Quando faço a escolha ele mostra o errado
# print(f"Tema: {lista[i]}")
# print(f'\033[1;30m{historias[lista[i]][titulo.__str__()]}\033[m')
#Ai vem as perguntasTexto pré-formatado