2016-09-11 7 views
3

私はイベントの受賞者のリストを持っています。私は自分のコードの最後にそれらをプリントアウトしたい、マイナスブラケットと引用符、および私は現在、使用しています:print文の中にforループを含めることはできますか?

  for items in winners: 
       print(items) 

私はprint文でこれを含めることはできますか? 私がしたい:

  print("The winners of {} were: {} with a score of {}".format(sport, winners, max_result)) 

はprint文、または私は声明の中でそれを含めることができるような引用符や角括弧を除去する別の方法にためのループを統合する方法はありますか?

ありがとうございました。

+3

あなたが扱っているデータの正確なサンプルと、それがどのように見えるかのサンプルを示してください。今現在何が起こっているのかを説明します。これは、コードに問題があることを示しています。 – idjaw

+0

@ idjawこれは言語の能力に関する質問であり、コードの問題に関する質問ではありません。 –

+0

@JeremyFriesnerこのケースでは何が間違っているのか分かりませんが、確かに試してみる必要があります。何か問題はありませんでした。私が彼らの間違いを理解するのに役立つより多くの情報を求めることはここでの良いアプローチです。 – idjaw

答えて

0

winnersが文字列のリストの場合は、str.joinを使用して連結することができます。例えば

>>> winners = ['John', 'Jack', 'Jill'] 
>>> ', '.join(winners) 
'John, Jack, Jill' 

だからではなくwinnersのあなたの印刷呼び出しで', '.join(winners)を置くことができ、それは、カンマで区切られた受賞者が印刷されます。

6

forループを含めることはできませんが、受賞者のリストを文字列に追加することはできます。

winners = ['Foo', 'Bar', 'Baz'] 
print('the winners were {}.'.format(', '.join(winners))) 

これは

受賞者がfoo、バー、バズた印刷し。

0

ループのAは、理解の形でprintにしか供給できません。

しかし、リストの内容は、あなたが簡単に行うことができます必要がそれぞれの順になっている場合:

print("The winners of {} were: {} with a score of {}".format(*winners)) 

これは単なるリストの各項目を各ブラケットに一致します。あなたは、これは違ったあなただけのそれらの相対的な位置を供給注文する必要がある場合は、次のPython 3 print

print("The winners of {1} were: {0} with a score of {2}".format(*winners)) 
0

まずノートを、関数であるが、また、あなたがforステートメントを使用することはできませんPythonの2の声明でした議論として。 printが関数であるので、あなたは一例として、あなたが必要なすべてのものを使用して独自の関数を書くことができ、もちろん

data = ['Hockey','Swiss', '3'] 
print("Sport is {}, winner is {}, score is {}".format(*(_ for _ in data))) 

: のみ、このような奇妙なソリューションは、forループのように見えた、私の心に来ます:

def my_print(pattern, *data): 
    print(pattern.format(*(_ for _ in data))) 

my_print("Sport is {}, winner is {}, score is {}", 'Hockey', 'Swiss', '3') 

また、Pythonの3.6で導入される、およそF-文字列"Literal String Interpolation" PEP 498を読むことができます。このf-stringsは、最小限の構文を使用して、文字列リテラル内に式を埋め込む方法を提供します。

関連する問題