2010-05-27 9 views
1
j=0 
x=[] 
for j in range(9): 
    x=x+ [j] 

cette volonté sortieproblème avec les listes?

[1,2,3,4,5,6,7,8,9] 

je voulais comme

['1','2','3'... 

comment puis-je obtenir?

+4

Il devrait afficher '[0 , 1,2,3,4,5,6,7,8] ». –

Répondre

3

Ok, les moyens de python « bons » sont déjà affichés, mais je veux vous montrer comment vous modifier votre exemple pour faire fonctionner la façon dont vous le voulez:

j=0 
x=[] 
for j in range(9): 
    x = x + [str(j)] 
+0

Règle de clarté: La clarté est meilleure que l'intelligence. – Anders

+0

Je pourrais faire valoir que '' x.append (str (j)) '' est plus clair que l'opérateur '+'. – tgray

12

convertir en chaîne:

>>> [str(i) for i in range(9)] 
['0', '1', '2', '3', '4', '5', '6', '7', '8'] 

si vous voulez que votre liste pour commencer 1 simplement changer votre fonction range:

>>> [str(i) for i in range(1, 9)] 
['1', '2', '3', '4', '5', '6', '7', '8'] 

En outre, vous n'avez pas besoin d'initialiser la variable de boucle (j=0 n'est pas requis).

4

python 2

>>> map(str, range(1, 9)) 
['1', '2', '3', '4', '5', '6', '7', '8'] 

python 3

>>> list(map(str, range(1, 9))) 
['1', '2', '3', '4', '5', '6', '7', '8'] 

Documentation pour range:

+0

Notez que, sur Py3k cela retournera paresseusement comme '. Il faut évaluer à une liste avec 'list (map (str, range (9)))'. – kennytm

+0

Merci pour la mise à jour. – miku

0
j=0 
x=[] 
for j in range(9): 
    x=x+[str(j)] 
Questions connexes