2013-10-01 13 views
8

ich nach einer Möglichkeit, Elemente aus einem Tupel ohne Klammern zu druckenPython - print Tupelelemente ohne Klammern

Heres mein Tupel:

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

ich diese in eine Liste umgewandelt zu machen es einfacher, mit

mylist == list(mytuple) 

arbeiten dann habe ich die folgende

for item in mylist: 
    print item.strip() 

aber ich bekomme die folgenden Fehler

'tuple' object has no attribute 'strip' 

die seltsam ist, weil ich dachte, dass ich in eine Liste umgewandelt?

was erwarte ich, als das Endergebnis zu sehen, ist so etwas wie

1.0, 
25.34, 
2.4, 
7.4 

oder

1.0, ,23.43, , 2.4, ,7.4 

Dank

+5

Sie tatsächlich solche Doppel Kommas wollen? –

Antwort

8

mytuple ist bereits eine Liste (eine Liste von Tupeln), so ruft list() darauf nichts tut.

(1.0,) ist ein Tupel mit einem Element. Sie können String-Funktionen nicht aufrufen (wie Sie es versucht haben). Sie sind für String-Typen.

jedes Objekt in der Liste von Tupeln zu drucken, nur tun:

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

Oder:

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

würde 'print ',,'. Join (map (str, mytuple))' das gleiche tun? –

+1

@Mr_and_Mrs_D Nein, wir brauchen 'i [0] für i' und nicht' i for i' – TerryA

4

Sie es wie dies auch tun können:

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

I Iteriere durch die Listentupel, als ich durch die 'Items' der Tupel iteriere.

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 

Ergebnis:

1.0 
25.34 
2.4 
7.4 

zu bekommen genau das Ergebnis, das Sie oben Sie erwähnt immer hinzufügen

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