63

printステートメントの後の改行を抑制するために、テキストの後にコンマを置くことができることを読みました。ここでの例はPython2のように見えます。Python3でどのように行うことができますか?

例えば:

for item in [1,2,3,4]:
    print(item, " ")

同じ行に印刷するために何を変更する必要がありますか?

4

5 に答える 5

107

質問は次のとおりです。「 Python 3 でどのように実行できますか?

Python 3.x でこの構造を使用します。

for item in [1,2,3,4]:
    print(item, " ", end="")

これにより、次が生成されます。

1  2  3  4

詳細については、このPython ドキュメントを参照してください。

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

--

余談

さらに、このprint()機能は、sep印刷する個々のアイテムをどのように分離するかを指定できるパラメーターも提供します。例えば、

In [21]: print('this','is', 'a', 'test')  # default single space between items
this is a test

In [22]: print('this','is', 'a', 'test', sep="") # no spaces between items
thisisatest

In [22]: print('this','is', 'a', 'test', sep="--*--") # user specified separation
this--*--is--*--a--*--test
于 2012-08-24T03:24:41.977 に答える
0

Python 3 の print() 関数では end="" の定義が許可されているため、これでほとんどの問題が解決されます。

私の場合、PrettyPrint を使用したかったのですが、このモジュールが同様に更新されていないことに不満を感じていました。だから私はそれを私がやりたいようにしました:

from pprint import PrettyPrinter

class CommaEndingPrettyPrinter(PrettyPrinter):
    def pprint(self, object):
        self._format(object, self._stream, 0, 0, {}, 0)
        # this is where to tell it what you want instead of the default "\n"
        self._stream.write(",\n")

def comma_ending_prettyprint(object, stream=None, indent=1, width=80, depth=None):
    """Pretty-print a Python object to a stream [default is sys.stdout] with a comma at the end."""
    printer = CommaEndingPrettyPrinter(
        stream=stream, indent=indent, width=width, depth=depth)
    printer.pprint(object)

今、私がするとき:

comma_ending_prettyprint(row, stream=outfile)

私は私が欲しかったものを手に入れました(あなたが望むものを代用してください - あなたのマイレージは変わるかもしれません)

于 2016-02-03T07:16:44.027 に答える