有一个清单:
x=['s',2,'3',4,5,6]
我可以这样打印:
for i in x:
print i
但是,正如我发现的那样,只使用一个打印语句会更快一些,如下所示(以下是我如何做到这一点):
print "\n".join( i.__class__==string and i or str(i) for i in x )
鉴于我想使用第二个选项,并且我希望输出类似于(我还想包括一个计数器):
v1: s v2: 2 v3: 3 etc
这是我尝试过的:
1)
count=0
print (("v"+str(++count)).join(":%s "% i for i in x ) )
结果是::s, v0:2, v0:3, v0:4, v0:5, v0:6,
真的不是我的目标。
a) str(++count) 什么也不打印,count++ 给出合成错误
b) firstv
无处可寻,因为join
在这种情况下添加了分隔符并且不需要第一个元素
2)
print ( ["v"+str(++count)+ ":%s, "% i for i in x ] )
提供['v0:s, ', 'v0:2, ', 'v0:3, ', 'v0:4, ', 'v0:5, ', 'v0:6, ']
更好,但仍然没有counter
,我不希望[]
显示
3) 从头开始并重新启动:
print ",".join(i for i in x )
不能连接string
,int
所以它变成:
print ",".join(i.__class__==string and i or str(i) for i in x )
这使:
s,2,3,4,5,6
这就是我卡住的地方。