2013-10-01 17 views
8

szukam sposób drukowania elementów z krotki bez nawiasówPython - druk elementy krotkowe bez nawiasów

Herezje moja krotka:

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

konwertowane do tego wykazu, aby łatwiej pracować z

mylist == list(mytuple) 

Potem zrobiłem następujące

for item in mylist: 
    print item.strip() 

ale pojawia się następujący błąd

'tuple' object has no attribute 'strip' 

co jest dziwne, bo myślałam, konwertowane na liście?

czego oczekuję, aby zobaczyć, jak wynik końcowy jest coś takiego jak

1.0, 
25.34, 
2.4, 
7.4 

lub

1.0, ,23.43, , 2.4, ,7.4 

Dzięki

+5

rzeczywiście chcesz te podwójne przecinki? –

Odpowiedz

8

mytuple jest już lista (lista krotek), więc nazywając list() na to nic nie robi.

(1.0,) to krotka z jednym przedmiotem. Nie można wywoływać na nim funkcji łańcuchowych (jak próbowano). Są dla typów strun.

Aby wydrukować każdą pozycję na liście krotek, po prostu zrobić:

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

Lub:

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

będzie "print", ". Join (map (str, mytuple))" zrobić to samo? –

+1

@Mr_and_Mrs_D Nie, ponieważ potrzebujemy 'i [0] dla i', a nie' i dla i' – TerryA

4

Można zrobić to w ten sposób, a także:

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

I iteruj po krotkach listy, a następnie sprawdzam "elementy" krotek.

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 

wynik:

1.0 
25.34 
2.4 
7.4 

aby uzyskać dokładnie taki efekt wspomniałeś powyżej można zawsze dodać

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