web-dev-qa-db-ja.com

python

print関数で"\n"を使用すると、次のコードで構文エラーが発生します。

from itertools import combinations
a=[comb for comb in combinations(range(1,96+1),7) if sum(comb) == 42]
print (a "\n")

各組み合わせに新しい行を追加する方法はありますか?

4
user6234753

print関数はすでに改行を追加しているので、印刷してから改行を続ける場合は、次のようにします(Python 3)であるため、parensは必須です)。

print(a)

aの要素をそれぞれ改行で区切って出力することが目的の場合は、次のいずれかを明示的にループできます。

for x in a:
    print(x)

または、スターアンパックを悪用して単一のステートメントとして実行し、sepを使用して出力を異なる行に分割します。

print(*a, sep="\n")

改行だけでなく、出力間に空白行が必要な場合は、最初の2つにend="\n\n"を追加するか、最後のオプションとしてsepsep="\n\n"に変更します。

7
ShadowRanger

2つの可能性:

print "%s\n" %a
print a, "\n"
1
PfunnyGuy

過去の私にとっては、print( "\ n"、a)のようなものが機能します。

0
fastlan

これはあなたのために働くでしょう:

私の例では1,2 ... 6を使用し、合計が7の2つの長さのタプルを使用しました。

from itertools import combinations
a=["{0}\n".format(comb) for comb in combinations(range(1,7),2) if sum(comb) == 7]

print(a)
for thing in a:
    print(thing)

出力

['(1, 6)\n', '(2, 5)\n', '(3, 4)\n']
(1, 6)

(2, 5)

(3, 4)
0
Garrett R