2015-05-05 13 views
11

Ho una lista come questa:Python Come ottenere ogni primo elemento 2 Elenco dimensionale

a = ((4.0, 4, 4.0), (3.0, 3, 3.6), (3.5, 6, 4.8)) 

voglio un risultato come questo (OGNI primo elemento della lista):

4.0, 3.0, 3.5 

Ho provato a [:: 1] [0], ma non funziona

Sto iniziando a imparare Python settimane fa. versione di Python 2.7.9 =

+0

Questa non è una lista ... Se vuoi lavorare con gli array, guarda in 'numpy'. – jonrsharpe

risposta

23

È possibile ottenere l'indice [0] da ogni elemento in un elenco di comprensione

>>> [i[0] for i in a] 
[4.0, 3.0, 3.5] 

anche solo per essere pedanti, non avere una list di list, avete a tuple di tuple.

+0

Beh, in tal caso dovresti probabilmente restituire una tupla. Prova a passare un'espressione di generatore nella parola chiave 'tuple'. –

2

si può ottenere come

[ x[0] for x in a] 

che restituirà un elenco del primo elemento di ciascuna lista a

13

uso zip

columns = zip(*rows) #transpose rows to columns 
print columns[0] #print the first column 
#you can also do more with the columns 
print columns[1] # or print the second column 
columns.append([7,7,7]) #add a new column to the end 
backToRows = zip(*columns) # now we are back to rows with a new column 
print backToRows 

è anche possibile utilizzare NumPy

a = numpy.array(a) 
print a[:,0] 
+2

in python 3, devi fare la lista (zip (* righe)), altrimenti non è pedice. – mehmet

0

Prova utilizzando

for i in a : 
    print(i[0]) 

i rappresenta singola riga in a.So, i [0] represnts 1 ° elemento di ogni riga.

Problemi correlati