6

Python バージョン 3.2.3 を使用しています。数字のリストを連続して印刷しようとしていますが、印刷コマンドは常に数字を 1 行ずつ印刷しているようです。

numbers = [1, 2, 3, 4, 5];
for num in numbers:
    print("\t ", num)

出力は次のとおりです。

1

2
...

必要な出力は 1 2 3 4 5 です

よろしくお願いします。Ps ここで Web を検索しましたが、ほとんどの質問は Python 2.7 に関するものでした。

4

4 に答える 4

11

引数を使用してend、自動 EOL 出力を抑制 (または置換) します。

print("\t ", num, end='')

または、おそらく次を使用する必要があります。

print('\t'.join(map(str, [1, 2, 3, 4, 5])))
于 2012-10-05T08:56:24.680 に答える
9

他の回答に加えて、 print が関数になったので、それを行うためのきちんとした方法があります。

print(*numbers, sep='\t')

元のコードとは異なり、これは最初の数字の前にタブを置きません。追加のタブが必要な場合、最も簡単な方法は、数字の前に空白の項目を配置することです。これにより、追加のタブ区切りが作成されます。

print('', *numbers, sep='\t')
于 2012-10-06T18:41:06.250 に答える
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]

于 2012-10-05T08:55:55.913 に答える
2

sys.stdout.write()の代わりに使用できprint()ます。これにより、改行なしで、出力がすぐに出力ストリームに送信されます。

これには、醜いという欠点と、文字列全体を一度にメモリに保存しないという利点があります。(join配列が非常に大きい場合、この方法ではコンピューターがクラッシュします。)

于 2012-10-05T08:58:29.907 に答える