# Lezione 10 - Esercizio 6
# Creare una LISTA DI LISTE DI LISTE, dove ogni lista più interna contiene tre elementi.
# Chiedere all'utente di inserire tre indici: uno per la lista di liste, uno per la lista interna,
# e uno per l'elemento dentro la lista più interna.
# Stampare l'elemento corrispondente.

giga_lista = [[
    [3, 7, 13],
    [6, 8, 32],
    [41, 62, 77]
],
[
    ["ciao", "buonasera", "salve"],
    ["ao", "pupazzo", "buffone"],
    [True, False, not True and False]
],
[
    [12 * 45, 33 * 2, 44 * 45],
    [12e3, 44e2, 55e90],
    [f"Siummeroni {2*2} " * 2, 0b1101011, 0x16AE]
]]

print("\nBuonasera, questo è l'esercizio precedente ma su steroidi.\n")

indice_esterno = len(giga_lista) * 100
while not -len(giga_lista) <= indice_esterno < len(giga_lista):
    indice_esterno = int(input(f"Inserisci l'indice più esterno, quello relativo alla lista di liste (0-{len(giga_lista) - 1}): "))

indice_centrale = len(giga_lista[indice_esterno]) * 100
while not -len(giga_lista[indice_esterno]) <= indice_centrale < len(giga_lista[indice_esterno]):
    indice_centrale = int(input(f"Bene, ora inserisci l'indice centrale, quello relativo alla lista che conterrà la lista più interna (0-{len(giga_lista[indice_esterno]) - 1}): "))

indice_interno = len(giga_lista[indice_esterno][indice_centrale])
while not -len(giga_lista[indice_esterno][indice_centrale]) <= indice_interno < len(giga_lista[indice_esterno][indice_centrale]):
    indice_interno = int(input(f"Infine, inserisci l'indice più interno, quello relativo alla lista interna che hai scelto (0-2):"))

print(f"L'elemento che hai scelto è {giga_lista[indice_esterno][indice_centrale][indice_interno]}")