给出以下代码:
l1 = ['001', '002', '003']
print ("ID" + "\t"+ "Usr" + "\t" + "f1" +"\t"+ "f2"+ "\t"+ "f3"+"\n")
print ("12QRS" + "\t"+ "RSW123"+ "".join([ int(z) * "\t" + str(1) for z in l1])+"\n")
输出如下:
12QRS RSW123 1 1 1
前两个值由一个选项卡分隔。第三,第四和第五根据l1的元素分开,即一个,两个和三个标签。但是,这并不准确,尽管第三个值真正用一个标签分隔,最后两个值不在正确的位置。他们应该定位在两个和那里的标签尊重。我想让最后两个值写入正确的位置?
答案 0 :(得分:0)
嗯,首先,您可能已经在最后一行代码中颠倒了'\ t'和int(z)的出现顺序。我想应该是,根据你的意图:
print ("12QRS" + "\t"+ "RSW123"+ "".join([ "\t" * int(z) + str(1) for z in l1])+"\n")
然后,第二,为什么不使用与Python字符串相关的格式化功能,使用的解释器是2.7或3.x?只需查看Python 2.7:7.1. string — Common string operations甚至更旧的语法:“ format spec ”%(项目列表)已经在那里讨论过: Python string formatting: % vs. .format