2015-10-28 4 views
8

Zum Beispiel:Wie ein konvertieren für Schleifenausgang in eine Liste (Python)

for y,x in zip(range(0,4,1),range(0,8,2)): 
    print(x+y) 

Returns:

0 
3 
6 
9 

Was ich will, ist:

['0','3','6','9'] 

Wie kann ich Dies erreichen?

+1

'mylist = [(x + y) für x, y in zip (Bereich (0,4,1), Bereich (0,8,2) tun)] ' – khelwood

+0

Wollen Sie die Antworten speziell als Strings? Wenn Sie weitere Arithmetik (einschließlich Sortierung) durchführen möchten, ist es am besten, sie als Zahlen zu behalten (sie verwenden auch weniger RAM in numerischer Form); Sie können sie einfach in Strings konvertieren, wenn Sie sie ausgeben. –

Antwort

10

Der einfachste Weg, um Ihr Verständnis, ohne list comprehension zu verwenden, ist:

mylist = [] 
for y,x in zip(range(0,4,1),range(0,8,2)): 
    mylist.append(str(x+y)) 
print mylist 

Ausgang:

['0','3','6','9'] 
+0

Verwenden Sie den Klassennamen 'list' nicht als Variablennamen. –

7

Versuchen Sie, diese list comprehension

>>>[x+y for y,x in zip(range(0,4,1),range(0,8,2))] 
[0, 3, 6, 9] 
>>>[str(x+y) for y,x in zip(range(0,4,1),range(0,8,2))] 
['0', '3', '6', '9'] 
3

Sie mit Liste dynamisch generieren:

print [str(x+y) for x, y in zip(range(0,4,1), range(0,8,2))] 

['0','3','6','9'] 

Diese Technik list comprehensions genannt.

1

Sie die für Schleifen und map() und add importieren aus operator

verwenden überspringen könnte
from operator import add 
l = map(add,range(0,4,1),range(0,8,2)) 
print l 

[0, 3, 6, 9] 

Und wenn Sie es als Strings wollen könnten Sie

from operator import add 
l = map(add,range(0,4,1),range(0,8,2)) 
print map(str, l) 

['0','3', '6', '9'] 
Verwandte Themen