36

現在、Python でメソッドを取得して、ゼロ、1、または 2 つの文字列のリストを返して文字列フォーマッタにプラグインし、それらを文字列メソッドに渡そうとしています。私のコードは次のようになります。

class PairEvaluator(HandEvaluator):
  def returnArbitrary(self):
    return ('ace', 'king')

pe = PairEvaluator()
cards = pe.returnArbitrary()
print('Two pair, {0}s and {1}s'.format(cards))

このコードを実行しようとすると、コンパイラは IndexError: tuple index out of range を返します。
戻り値を引数として渡すには、どのように構造化すればよい.format()ですか?

4

3 に答える 3

84
print('Two pair, {0}s and {1}s'.format(*cards))

星だけが欠けています:D

于 2009-02-11T22:20:47.640 に答える
5

Python 2.6での導入時点では、%演算子よりも形式が優先されます:http://docs.python.org/2/library/stdtypes.html#str.format

また、フォーマット文字列を変更するよりも、*-でタプルを解凍するか、**-でdictを解凍する方がはるかに簡単です。

于 2012-11-27T10:29:51.203 に答える
1

これは、カードの内容ではなく、印刷するための単一のフォーマット入力として「カード」を使用しようとします。

次のようなものを試してください:

print('Two pair, %ss and %ss' % cards)
于 2009-02-11T22:20:26.160 に答える