9
変数を使用して変数を書式設定するにはどうすればよいですか?変数の書式設定によるPythonの書式設定文字列
cart = {"pinapple": 1, "towel": 4, "lube": 1}
column_width = max(len(item) for item in items)
for item, qty in cart.items():
print "{:column_width}: {}".format(item, qty)
> ValueError: Invalid conversion specification
か私にできることは何
(...):
print "{:"+str(column_width)+"}: {}".format(item, qty)
> ValueError: Single '}' encountered in format string
、しかし、最初の書式文字列を作成し、それをフォーマットします
(...):
formatter = "{:"+str(column_width)+"}: {}"
print formatter.format(item, qty)
> lube : 1
> towel : 4
> pinapple: 1
しかし、不器用なルックス。このような状況に対処するより良い方法はありませんか?変数を入れ子にすることができるので、これは完全に正常に動作します:
はい、これは '.formatは()'であることを理由の一つです'%'フォーマット文字列よりも優先されます –
@gnibbler: '%*'はうまく動作します – georg
Afaik '%'は非推奨とみなされ、Python 3の将来のバージョンでは削除されます。 –