web-dev-qa-db-ja.com

Pythonで** kwargsをループするにはどうすればよいですか?

以下のコードでは、obj.subjectをvarに配置しますsubject,も読むobj.bodybodyに配置します。まず、kwargs変数を読み取り、置換する文字列内のキーワードを検索します。存在しない場合は次に進みます。

Pythonでkwargsを反復処理するにはどうすればよいですか?

for key in kwargs:
    subject = str(obj.subject).replace('[%s]' % upper(key), kwargs[key])

for key in kwargs:
    body = str(obj.body).replace('[%s]' % upper(key), kwargs[key])

return (subject, body, obj.is_html)
27
Mo J. Mughrabi

Python 3ユーザーの場合:

.items()kwargsを反復できます

_subject = obj.subject
body = obj.body
for key, value in kwargs.items():
    subject = subject.replace('[%s]' % key.toupper(), value)
    body = body.replace('[%s]' % key.toupper(), value)

return (subject, body, obj.is_html)
_

For Python 2 users:の場合

.iteritems()kwargsを反復できます:

_subject = obj.subject
body = obj.body
for key, value in kwargs.iteritems():
    subject = subject.replace('[%s]' % key.toupper(), value)
    body = body.replace('[%s]' % key.toupper(), value)

return (subject, body, obj.is_html)
_
29
jterrace

Python 3.にアップグレードする人のための簡単なメモ。

Python 3では、ほとんど同じです。

_subject = obj.subject
body = obj.body
for key, value in kwargs.items():
    subject = subject.replace('[{0}]'.format(key.toupper()), value)
    body = body.replace('[{0}]'.format(key.toupper()), value)

return (subject, body, obj.is_html)
_

dictにはメソッドiteritemsがなくなったため、iteritems()items()になることに注意してください。

20
oliverseal