私はこれを持っている場合:私はdictを使用できますか?関数 "format"で?
>>> templ = "{aa} fd3443fds {bb} 543gfdgf {cc}"
>>> d1 = {"aa": "this is aa", "bb": "this is bb33", "cc": "this is cc5222"}
好ましく文字列の機能「形式」を使用して、「D1」の対応する値とtempl
に{}内の値を交換する最も簡単な方法は何ですか?
私はこれを持っている場合:私はdictを使用できますか?関数 "format"で?
>>> templ = "{aa} fd3443fds {bb} 543gfdgf {cc}"
>>> d1 = {"aa": "this is aa", "bb": "this is bb33", "cc": "this is cc5222"}
好ましく文字列の機能「形式」を使用して、「D1」の対応する値とtempl
に{}内の値を交換する最も簡単な方法は何ですか?
テンプレート文字列templ
と辞書d1
を持っている場合、あなたは以下のようなものをテンプレート変数に記入することができます
result = templ.format(**d1)
を使用すると、属性d1.aa
、d1.bb
などでオブジェクトd1
をお持ちの場合:
class Class1: pass
d1 = Class1()
d1.aa = d1.bb = d1.cc = 'hello'
テンプレート文字列を書き換えることができます。
templ = "{0.aa} fd3443fds {0.bb} 543gfdgf {0.cc}"
result = templ.format(d1)
か、vars(d1)
を使用することができる場合があります
templ = "{aa} fd3443fds {bb} 543gfdgf {cc}"
result = templ.format(**vars(d1))
インスタンスの属性に対して、どうすればいいですか?つまり、d1がClass1のインスタンスで、属性が「aa」、「bb」、「cc」の場合です。そのまま渡すと例外がスローされます。 – Joota
@Joota - '.format(** vars(d1))'を使ってみてください。私の最近の編集を参照してください。 –
FYI、現代のPythonでは、 'result = templ.format(** d1)'は['str.format_map'](https://docs.python.org/3/library/stdtypes.html#str)で行うことができます.format_map)は 'result = templ.format_map(d1)'を実行してマッピングプロトコルをサポートしている限り、任意の非 'dict'オブジェクトをサポートします。ある時点では、これは 'dict'サブクラスにも必要でしたが、少なくとも3.5ではそうではないようです(' '{a}、{b} '、format(** defaultdict(lambda:' foo ') ) '' foo、foo''を出力します。これは 'defaultdict'の状態が失われていないことを示しています)。 – ShadowRanger
Joota、あなたは 'STRING'または' str'を意味していますか?私は 'String'が何であるか分からない。 –
@Robᵩ、str ..... – Joota