0

我试图打印排序的行..

print accnt, '{}'.format(*file[line][0])#the year 1 .. Accnt.1 2004
print accnt, '{}'.format(*file[line][1])#the year 2 .. Accnt.1 2009

输出文件是这样的:

File 1
Accnt.1 2004
Accnt.1 2009
Accnt.2 2001
Accnt.2 2005

我怎样才能像这样打印它:

File 1
Accnt.1 2004 Accnt.1 2009
Accnt.2 2001 Accnt.2 2005

谢谢!

4

4 回答 4

1

在 python 2.x 中使用尾随逗号,在 python 3.x 中使用print(x,end=' ')

In [165]: l=[1,2,3,4,5,6]

In [166]: for x in l:
     ...:     print x,
     ...:     
1 2 3 4 5 6

In [167]: for x in l:
     ...:     print x
     ...:     
1
2
3
4
5
6
于 2012-10-16T12:17:56.990 回答
0

如果您只想在一行上打印每个打印语句的每条记录,请在打印语句的末尾添加一个逗号:

print accnt, '{}'.format(*file[line][0]),
print accnt, '{}'.format(*file[line][1])

确保最后一行没有逗号,或者使用空打印语句在每个文件后打印换行符。

于 2012-10-16T12:15:59.953 回答
0

在此处从其他(正确)答案中借用一点:

虽然您可以使用print foo,来抑制换行符(在 python2.x 中)和print(foo, end=' ')在 python3.x 中,但我建议您直接写入sys.stdout. 这具有跨 python 版本的统一接口——

sys.stdout.write('accnt {0} accnt {1}\n'.format(file[line][0],file[line][1]))

或者更简单地说:

sys.stdout.write('accnt {0} accnt {1}\n'.format(*(file[line]))
于 2012-10-16T12:48:46.163 回答
0

如果您不需要进行参数扩展,并且看起来不像您这样做,那么这可能会起作用。

print 'accnt {0} accnt {1}'.format(file[line][0],file[line][1])
于 2012-10-16T12:32:06.320 回答