Python impression de la liste (mise en forme)

Avoir une liste:

x=['s',2,'3',4,5,6]

Je peux l'imprimer comme ceci:

for i in x:
        print i

Cependant, comme je l'ai découvert, c'est un peu plus rapide de simplement utiliser une instruction print, comme ceci (ci-dessous comment je suis arrivé à ce point):

print "\n".join( i.__class__==string and i or str(i) for i in x )

Étant donné que je veux utiliser la deuxième option et que je voudrais la sortie à quelque chose comme (je tiens aussi à ajouter un compteur):
v1: s v2: 2 v3: 3 etc

Voici ce que j'ai essayé:

1)

count=0
print (("v"+str(++count)).join(":%s "% i for i in x  ) )

résultat est::s, v0:2, v0:3, v0:4, v0:5, v0:6, Vraiment pas ce que je vise.

a) str(++count) imprime rien, count++ donne synthax error

b) première v est nulle part pour être trouvée, depuis join dans ce cas, ajoute séparateurs et il n'est pas nécessaire pour le premier élément

2)

print ( ["v"+str(++count)+ ":%s, "% i for i in x ] )

Donne ['v0:s, ', 'v0:2, ', 'v0:3, ', 'v0:4, ', 'v0:5, ', 'v0:6, '] Mieux, mais toujours pas de counter et je ne veux pas le [] montré

3)
Tout gratter et redémarrer:

print ",".join(i  for i in x ) 

ne peut pas concaténer string et int il devient donc:

print ",".join(i.__class__==string and i or str(i)  for i in x )

qui donne:

s,2,3,4,5,6

Et c'est là où je suis bloqué.

InformationsquelleAutor CosminO | 2013-10-16