如何在Python中循环** kwargs?

时间:2012-01-17 17:38:21

标签: python kwargs

在下面的代码中,我想阅读obj.subject并将其放入var subject,,同时阅读obj.body并将其放入body。首先,我想阅读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)

3 个答案:

答案 0 :(得分:27)

对于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)

答案 1 :(得分:20)

快速注释那些升级到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(),因为dict不再使用方法iteritems

答案 2 :(得分:0)

您可以对字典进行迭代,因为它默认在其键上提供迭代

"other_string_

我在 Python 3Python 2 解释器上测试了它,它对我来说完全正常,所以它也适合你。所有结构都有一个默认值,无论是列表、字典还是元组,您都可以在 python 语言中轻松对其进行迭代。

附上一张照片,说明我们可以轻松做到这一点Photo For Proof