2016-08-08 14 views
-5

Lassen Sie uns sagen, ich habe eine Liste wie folgt: [(1, (1,2)), (2, (23, -10)), (3, (4, 5))...]Wie durchläuft man eine Liste von Tupel innerhalb von Tupel in Python?

Ich will (1,2) erhalten, (23, -10), etc

edit: Vielen Dank für die Hilfe. Ich wusste nicht, über Liste Verständnis, wie ich mit Python nicht allzu vertraut bin

+3

Haben Sie etwas schon versucht? – DeepSpace

+4

Mögliches Duplikat von [Wie extrahiere ich die n-ten Elemente aus einer Liste von Tupeln in Python?] (Http://stackoverflow.com/questions/3308102/how-to-extract-the-n-th-elements-from -a-list-of-tuples-in-python) – miradulo

+1

Ein guter Ort, um mehr über das Durchlaufen von Listen zu erfahren: [List Comprehensions] (http://stackoverflow.com/documentation/python/196/comprehensions#t=201608080634467306627) – Mahdi

Antwort

-2

Ja, können Sie alle Tupel iterieren und dann das zweite Element nehmen:

list = [(1, (1,2)), (2, (23, -10)), (3, (4, 5))] 
for elem in list: 
    print(elem[1]) 

In jeder Iteration Elem Wert seiner (1,(1,2)) -> (2,(23,-10)) -> .... Dann nehmen Sie das zweite Element des Tupels (Index 1)

+0

Hinweis: Es ist _tuple_, nicht _touple_. Und was, wenn OP mit den zweiten Elementen arbeiten und nicht nur drucken wollte? Vielleicht in eine neue Liste eintragen? Derzeit enthält Ihre Antwort weniger Details als die Antworten auf das [verknüpfte Duplikat] (http://stackoverflow.com/questions/3308102/how-to-extract-the-n-th-elements-from-a-list-of-lis- Tupel-in-Python). – miradulo

0

Versuch etwas wie folgt aus: -

Hier Liste und erhalten andere Liste von Tupeln: -

a = [(1, (1,2)), (2, (23, -10)), (3, (4, 5))...] 

b = map(lambda item: item[1], a) 

print b 
0

Dies wird Ihr Problem lösen.

Hier ist eine Liste der Tupel, wo das zweite Element jedes Tupels auch ein Tupel ist. Um dieses zweite Element zu erhalten, verwenden wir Lambda, das Elemente aus der Liste übernehmen wird und nur das zweite Element von diesem Element zurückgibt, in diesem Fall das gewünschte Tupel. Die map Funktion erstellt auch eine Liste zurückgegebener Werte.

>>> list_of_nested_tuples = [(1, (1, 2)), (2, (23, -10)), (3, (4, 5))] 
>>> b = map(lambda item: item[1], list_of_nested_tuples) 
>>> b 
[(1, 2), (23, -10), (4, 5)] 

Beachten Sie, dass es deutlich mehr sein würde, nur Verständnis Liste verwenden, wie so

>>> [elem[1] for elem in list_of_nested_tuples] 
[(1, 2), (23, -10), (4, 5)]