97 votes

Accéder à une valeur dans un tuple qui se trouve dans une liste

[(1,2), (2,3), (4,5), (3,4), (6,7), (6,7), (3,8)]

Comment puis-je renvoyer la 2ème valeur de chaque tuple à l'intérieur de cette liste ?

Sortie désirée:

 [2, 3, 5, 4, 7, 7, 8]

111voto

Ignacio Vazquez-Abrams Points 312628

Avec une compréhension de liste .

 [x[1] for x in L]

2voto

jpp Points 83462

Vous pouvez également utiliser le déballage de séquence avec zip :

 L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]

_, res = zip(*L)

print(res)

# (2, 3, 5, 4, 7, 7, 8)

Cela crée également un tuple _ partir des premiers éléments supprimés. Extraire uniquement le second est possible, mais plus verbeux :

 from itertools import islice

res = next(islice(zip(*L), 1, None))

2voto

U9-Forward Points 8640

OU vous pouvez utiliser pandas :

 >>> import pandas as pd
>>> L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
>>> df=pd.DataFrame(L)
>>> df[1]
0    2
1    3
2    5
3    4
4    7
5    7
6    8
Name: 1, dtype: int64
>>> df[1].tolist()
[2, 3, 5, 4, 7, 7, 8]
>>> 

Ou numpy :

 >>> import numpy as np
>>> L = [(1,2),(2,3),(4,5),(3,4),(6,7),(6,7),(3,8)]
>>> arr=np.array(L)
>>> arr.T[1]
array([2, 3, 5, 4, 7, 7, 8])
>>> arr.T[1].tolist()
[2, 3, 5, 4, 7, 7, 8]
>>> 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X