【发布时间】:2013-10-24 08:48:04
【问题描述】:
有一个清单:
x=['s',2,'3',4,5,6]
我可以这样打印:
for i in x:
print i
但是,正如我发现的那样,只使用一个 print 语句会更快一些,如下所示(以下是我如何做到这一点的):
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) 第一个v 找不到,因为在这种情况下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
这就是我卡住的地方。
【问题讨论】:
标签: python-2.7