2013-10-01 13 views
8

Sto cercando un modo per stampare elementi di una tupla senza staffePython - elementi tuple stampa senza staffe

Heres mia tuple:

mytuple = [(1.0,),(25.34,),(2.4,),(7.4,)] 

mi sono convertito a un elenco per rendere è più facile lavorare con

mylist == list(mytuple) 

poi ho fatto la seguente

for item in mylist: 
    print item.strip() 

ma ottengo il seguente errore

'tuple' object has no attribute 'strip' 

che è strano perché pensavo mi sono convertito a un elenco?

quello che mi aspetto di vedere come il risultato finale è qualcosa di simile

1.0, 
25.34, 
2.4, 
7.4 

o

1.0, ,23.43, , 2.4, ,7.4 

Grazie

+5

si vuole realmente quelle doppia virgole? –

risposta

8

mytuple è già una lista (una lista di tuple), così chiamata list() su di esso non fa nulla.

(1.0,) è una tupla con un elemento. Non puoi chiamare le funzioni di stringa su di esso (come hai provato). Sono per i tipi di corda.

Per stampare ciascun elemento nella lista di tuple, basta fare:

for item in mytuple: 
    print str(item[0]) + ',' 

Oppure:

print ', ,'.join([str(i[0]) for i in mytuple]) 
# 1.0, ,25.34, ,2.4, ,7.4 
+1

sarebbe 'print ',,'. Join (map (str, mytuple))' fare lo stesso? –

+1

@Mr_and_Mrs_D No, poiché abbiamo bisogno di 'i [0] per i' e non di' i for i' – TerryA

4

si può fare in questo modo, così:

mytuple = (1,2,3) 
print str(mytuple)[1:-1] 
0

I scorrere tra le tuple delle liste, rispetto a scorrere le 'voci' delle tuple.

my_tuple_list = [(1.0,),(25.34,),(2.4,),(7.4,)] 

for a_tuple in my_tuple_list: # iterates through each tuple 
    for item in a_tuple: # iterates through each tuple items 
     print item 

risultato:

1.0 
25.34 
2.4 
7.4 

per ottenere esattamente il risultato che hai menzionato sopra si può sempre aggiungere

print item + ',' 
0
mytuple = [(1.0,),(25.34,),(2.4,),(7.4,)] 
for item in mytuple: 
    print(*item) # *==> unpacking