の戻り値を適切な数の変数に割り当て/解凍できる理由に戸惑いsplit()
ますが、フォーマットディレクティブを使用した印刷文字列での使用には同じことが失敗します。
例:与えられた:
In [202]: s
Out[202]: 'here are 4 values'
In [203]: s.split()
Out[203]: ['here', 'are', '4', 'values']
これは期待どおりに機能します。
In [204]: a, b, c, d = s.split()
In [205]: print '%s %s %s %s' % (a, b, c, d)
here are 4 values
しかし、これは失敗します..
In [206]: print '%s %s %s %s' % (s.split())
理由がわかりませんか?の戻り値をsplit()
解凍して、フォーマット文字列の予想される引数に分散させるべきではありませんか?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
C:\bla\Desktop\<ipython-input-206-600f130ff0b2> in <module>()
----> 1 print '%s %s %s %s' % (s.split())
TypeError: not enough arguments for format string
「十分な引数に注意してください」..リストには適切な数の項目があります。この場合、何らかの理由でリストは解凍されませんが、変数への割り当ては解凍されますか?
私はこの質問に答えようとして 、Pythonで列のエントリを上下に並べてこれに遭遇しました