Pythonコンソールで、次のように入力すると:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
与える:
'I\nwould\nexpect\nmultiple\nlines'
私はそのような出力を見ることを期待していますが:
I
would
expect
multiple
lines
ここで何が欠けていますか?
回答:
あなたprint
は結果を忘れました。得られるのは、実際の印刷結果ではなく、P
インRE(P)L
です。
Py2.xでは、次のようにする必要があります
>>> print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines
Py3.Xでは、印刷は関数なので、次のようにする必要があります。
print("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
さて、それは短い答えでした。実際にはREPLであるPythonインタープリターは、実際に表示される出力ではなく、常に文字列の表現を表示します。表現はあなたがrepr
ステートメントで得るものです
>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'
print
その出力を取得する必要があります。
やったほうがいい
>>> x = "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
>>> x # this is the value, returned by the join() function
'I\nwould\nexpect\nmultiple\nlines'
>>> print x # this prints your string (the type of output you want)
I
would
expect
multiple
lines