Python列表打印(格式化)

Cos*_*inO 2 python-2.7

有一个清单:

x=['s',2,'3',4,5,6]
Run Code Online (Sandbox Code Playgroud)

我可以像这样打印:

for i in x:
        print i
Run Code Online (Sandbox Code Playgroud)

但是,正如我已经发现的那样,使用一个print语句会更快一些,就像这样(以下是我到达这一点的方法):

print "\n".join( i.__class__==string and i or str(i) for i in x )
Run Code Online (Sandbox Code Playgroud)

鉴于我想使用第二个选项,我希望输出类似(我还想包括一个计数器): v1: s v2: 2 v3: 3 etc

这是我尝试过的:

1)

count=0
print (("v"+str(++count)).join(":%s "% i for i in x  ) )
Run Code Online (Sandbox Code Playgroud)

结果是::s, v0:2, v0:3, v0:4, v0:5, v0:6, 真的不是我的目标.

a)str(++ count)什么都不打印,count ++给出了synthax错误

b)首先v无处可寻,因为join在这种情况下添加分隔符并且不需要第一个元素

2)

print ( ["v"+str(++count)+ ":%s, "% i for i in x ] )
Run Code Online (Sandbox Code Playgroud)

给予['v0:s, ', 'v0:2, ', 'v0:3, ', 'v0:4, ', 'v0:5, ', 'v0:6, ']更好,但仍然没有counter,我不希望[]被展示

3) 抓取所有并重新启动:

print ",".join(i  for i in x ) 
Run Code Online (Sandbox Code Playgroud)

不能连接string,int所以它变成:

print ",".join(i.__class__==string and i or str(i)  for i in x )
Run Code Online (Sandbox Code Playgroud)

这使:

s,2,3,4,5,6
Run Code Online (Sandbox Code Playgroud)

这就是我被困住的地方.

A. *_*das 7

我建议使用enumerate:

x = ['s',2,'3',4,5,6]
print ', '.join('v{}: {}'.format(v, i) for v, i in enumerate(x))
# v0: s, v1: 2, v2: 3, v3: 4, v4: 5, v5: 6
Run Code Online (Sandbox Code Playgroud)