2017-02-06 3 views
2

Ich habe eine Liste von Listen, die wie folgt aussieht: [['A', 35], ['B', 74], ['C', 21], [ 'D', 2]]den zugehörigen Wert in einer Liste von Listen finden

Ich möchte den ersten Teil der Liste basierend auf dem zweiten Teil finden.

Zum Beispiel weiß ich, ich möchte 'C' nur mit 21. Ich kenne den zweiten Teil (21) und möchte es verwenden, um den ersten Teil ('C') zu bekommen. Was ist der beste Weg, dies zu tun?

+2

Schauen Sie in die Verwendung von Wörterbüchern, wenn Sie nach Werten suchen wollen, die auf einem anderen "Schlüssel" basieren – MooingRawr

Antwort

2

Sie zurückkehren sollte ein Wörterbuch für diesen Einsatz: Ein Wörterbuch ist als ein Paar Schlüssel definiert

mylist = [['A', 35], ['B', 74], ['C', 21], ['D', 2]] 
newdic = dict((y,x) for x,y in mylist) 
print(newdic[21]) 
+0

Danke! +1 für das Umschalten der Werte und Schlüssel im Diktat, das war es, was ich brauchte, um auf dieser Grundlage nachsehen zu können – user20408

1

Der beste Weg, um dieses Problem zu lösen, ist ein Diktat anstelle einer Liste zu verwenden. Wert und Sie können eine einfache Codezeile ausführen, um die entsprechenden Schlüssel von avalue im Wörterbuch

+0

Wow, es war wirklich so einfach wie dict (list_of_lists). Danke – user20408

2

Diese ähnlich ist Antwort auf Jacques ':

d = {v: k for k, v in [['A', 35], ['B', 74], ['C', 21], ['D', 2]]} 

Es ist wie eine inverse Wörterbuch Verständnis, sondern erweist sich in den meisten Fällen schneller sein, da Sie die dict Funktion nicht verwenden sind und eher die Literalsyntax {} verwenden.

Verwandte Themen