badbatchcoder
Goto Top

Python: Wert in einer Liste innerhalb einer weiteren Liste suchen

Liebe Python-Community,

ich würde gerne mehrere Listen innerhalb einer Liste, nach einem bestimmten Wert an bestimmter Position durchsuchen.
Es soll die Liste zurückgegeben werden, die an der gewünschten Position den Wert enthält.

Veranschaulichung:
[
[pos1, pos2, pos3],
[pos1, pos2, pos3],
[pos1, pos2, pos3]
]
Wenn jetzt zum Beispiel ein Listenobjekt in der Gesamtliste an erster Position (hier pos1) den Wert 5 enthält, soll diese Liste zurückgegeben werden.

Beispiel:
[
[1, 5, "irgendwas"],  
[5, "test", "irgendwas"],  
[7, "test", "irgendwas"]  
]
Wenn hier nach dem Wert 5 an erster Position bzw. an Position gesucht werden würde, soll die zweite Liste zurückgegeben werden.

Stehe grad komplett aufm Schlauch...
Ich hoffe mir kann jemand weiterhelfen.

Vielen Dank im Voraus

Content-ID: 1849237063

Url: https://administrator.de/contentid/1849237063

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

runthegaunz
Lösung runthegaunz 06.02.2022 um 23:01:25 Uhr
Goto Top
Hi,

falls es immer nur eine Liste gibt, welche deine gesuchte Zahl an erster Stelle enthält (falls es mehrere gibt, wird immer die erste zurückgegeben):
def suche_liste(listen, suche) -> list:
    for liste in listen:
        if liste == suche:
            return liste


def main() -> None:
    listen = [
        [1, 5, 'irgendwas'],  
        [5, 'test', 'irgendwas'],  
        [7, 'test', 'irgendwas']  
    ]

    print(suche_liste(listen, 5))


if __name__ == '__main__':  
    main()

Falls es aber mehrere Listen gibt und du alle haben möchtest:
def suche_liste(listen, suche) -> list:
    return [liste for liste in listen if liste[0] == suche]


def main() -> None:
    listen = [
        [1, 5, 'irgendwas'],  
        [5, 'test', 'irgendwas'],  
        [7, 'test', 'irgendwas'],  
        [5, 1, 'irgendwas']  
    ]

    print(suche_liste(listen, 5))


if __name__ == '__main__':  
    main()

Viel Spaß!
BadBatchCoder
BadBatchCoder 07.02.2022 um 00:53:49 Uhr
Goto Top
Funktioniert perfekt! :D
Vielen vielen Dank für deine Hilfe