Indexy w listach zagnieżdżonych

0

Witam mam taki kod

wojownicy = [["Kassadin",30,0,0,0,0],["Heracim",30,0,0,0,0],["Wojtek",30,0,0,0,0],["Michał",30,0,0,0,0]]
while True:
    name = input("Podaj imię:")
    index = -1
    for rozpak in wojownicy:
        imie,pkt,sila,zdrowie,madrosc,zrecznosc = rozpak
        index +=1
        if name.lower() == imie.lower():
            cv = index
            print("Imię",name,"ma index",cv)

Chcę za pomocą podania Imienia pobrać numer indexu danego zagnieżdżenia. Ten kod działa lecz wydaje się prymitywny. Ma ktoś jakiś inny sposób odczytania indexu po podaniu imienia?
Próbowałem użyć wojownicy.index(name) lecz nie działa

0
wojownicy = [["Kassadin",30,0,0,0,0],["Heracim",30,0,0,0,0],["Wojtek",30,0,0,0,0],["Michał",30,0,0,0,0]]

nazwa = "Wojtek"

for wojownik in wojownicy:
    if wojownik[0] == nazwa:
        print(wojownicy.index(wojownik))

0

Dzięki wielkie, wygląda na to że muszę jeszcze popracować z listami.

1

Jakby sie zastanowić, słownik lepszy do takich zastosowań.

bazawojow = {"Kassadin": [30, 0, 0, 0, 0], "Heracim": [30, 0, 0, 0, 0],
    "Wojtek": [30, 0, 0, 0, 0], "Michał": [30, 0, 0, 0, 0]}
nazwa = "Wojtek"

if nazwa in bazawojow:
    print ("imie:",nazwa, "ma staty:", bazawojow[nazwa])
0

tylko sprawa się komplikuje gdy bym chciał wyświetlić wszystkich wojowników. W listach użyłbym print(wojownicy) a w słownikach ? To już większy problem

0

Da radę ;)

for key, value in enumerate(bazawojow):
    print(key, value)
0

Da się prościej


bazawojow = {"Kassadin": [30, 0, 0, 0, 0], "Heracim": [30, 0, 0, 0, 0],
    "Wojtek": [30, 0, 0, 0, 0], "Michał": [30, 0, 0, 0, 0]}

for nazwa in bazawojow:
    print ("imie:",nazwa, "ma staty:", bazawojow[nazwa])

Pamiętaj tylko że słowniki mają swoją własną kolejność przechowywania danych, ale to raczej nie problem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1