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