我使用的是Python 3.2.3版。我试图连续打印一个数字列表,打印命令似乎总是在行打印数字。
实施例
numbers = [1, 2, 3, 4, 5];
for num in numbers:
print("\t ", num)
输出是:
1
2
...
所需的输出为1 2 3 4 5
感谢您的帮助。 附:我在这里搜索了网页,大部分问题都与Python 2.7有关。
答案 0 :(得分:10)
使用end
参数来抑制(或替换)自动EOL输出:
print("\t ", num, end='')
或者,您应该只使用:
print('\t'.join(map(str, [1, 2, 3, 4, 5])))
答案 1 :(得分:8)
除了其他答案之外,现在还有一种巧妙的方法就是打印功能:
print(*numbers, sep='\t')
与原始代码不同,这不会在第一个数字之前放置选项卡。如果你想要那个额外的标签,最简单的方法就是在数字前放一个空白项,这样就会创建一个额外的标签分隔符:
print('', *numbers, sep='\t')
答案 2 :(得分:4)
您可以使用.join()
使用制表符来加入它们:
>>> numbers = [1, 2, 3, 4, 5]
>>> print('\t'.join(map(str, numbers)))
1 2 3 4 5
map(str, numbers)
与[str(n) for n in numbers]
相同。
答案 3 :(得分:2)
您可以使用sys.stdout.write()
代替print()
,它会立即将您的输出发送到输出流,而不会使用换行符。
这具有丑陋的缺点,并且不会立即将整个字符串存储在内存中。 (如果您的阵列非常非常大,join
方法会使您的计算机崩溃。)