38

以下のコードでは、それを読み込んobj.subjectで var に配置し、読み込んで に配置したいと考えています。まず、変数を読み取り、置換する文字列内のキーワードを検索します。存在しない場合は次に進みます。subject,obj.bodybodykwargs

kwargsPythonで反復するにはどうすればよいですか?

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)
4

3 に答える 3

49

Python 3 ユーザーの場合:

kwargsで繰り返すことができます.items()

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)

Python 2 ユーザーの場合:

kwargsで繰り返すことができます.iteritems()

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)
于 2012-01-17T18:04:23.940 に答える
21

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)

メソッドがなくなったようにiteritems()なることに注意してください。items()dictiteritems

于 2014-07-25T03:05:45.530 に答える
1

デフォルトでキーの反復を提供するため、辞書を反復できます。

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

print(subject, body)

Python 3およびPython 2インタープリターでテストしましたが、私にとってはまったく問題なく動作しているので、あなたにも問題なく動作します。リスト、辞書、タプルのいずれであっても、すべての構造にはデフォルトがあり、Python 言語で簡単に Iter できます。

それがとても簡単にできることを示す写真を添付し​​ます証拠写真

于 2021-02-18T11:33:14.833 に答える