Ich habe folgende Listen von Tupeln:Probleme beim Versuch, eine Liste von Tupeln zu ersetzen?
list1 = [('the', 'a'), ('over','1'), ('quick','b'),('fox', 'c'), ('brown', 'd'), ('dog','e'), ('jumps','2')]
Ich versuche, einige Tupel zu ersetzen, wie folgt (*):
('the', 'a') -> ('the', 'ART')
('quick','b') -> ('quick','VERB')
('fox', 'c') -> ('fox', 'ANIMAL')
Mit anderen Worten, die Tupel von list1
sollte dergleichen ersetzt werden dies:
list1 = [('the', 'ART'), ('over','1'), ('quick','VERB'),('fox', 'ANIMAL'), ('brown', 'd'), ('dog','e'), ('jumps','2')]
Also habe ich versucht, mit der folgenden Funktion:
def replace_val(alist, key, value):
return [(k,v) if (k != key) else (key, value) for (k, v) in alist]
Das Problem ist, dass ich nicht alle neuen Tupel aus (*) in einer Bewegung passieren kann, muss ich tun:
replace_val(list1, 'the', 'ART')
replace_val(list1, 'quick', 'VERB')
replace_val(list1, 'fox', 'ANIMAL')
So meine Frage ist: Wie kann ich effizient in einem ersetzen Bewegung alle neuen Tupel aus (*), um ?:
[('the', 'ART'), ('over','1'), ('quick','VERB'),('fox', 'ANIMAL'), ('brown', 'd'), ('dog','e'), ('jumps','2')]
Sie könnten Wörterbücher anstelle der Liste der Tupel verwenden, wenn Ihr Schlüssel der gleiche ist – SarathSprakash