如何在Python中循环**kwargs?
在下面的代码中,我想阅读如何在Python中循环**kwargs?,python,keyword-argument,Python,Keyword Argument,在下面的代码中,我想阅读obj.subject并将其放入varsubject,还要阅读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.subject
并将其放入varsubject,
还要阅读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)
对于Python 3用户: 您可以使用
.items()
对于Python 2用户:
您可以使用.iteritems()
在kwargs
中进行迭代:
对于那些升级到Python3的人来说,这只是一个简短的提示 在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您可以在字典上进行iter,默认情况下,它在其键上提供迭代
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)
我在Python3和Python2解释器上测试了它,它对我来说完全正常,所以对你来说也正常。所有结构都有一个默认值,无论是列表、字典还是元组,您都可以用python语言轻松地对其进行编译。
附上一张照片,说明我们可以轻松做到这一点。
能否显示示例输入(obj.subject
和obj.body
以及kwargs
)和所需输出?如果没有这些,很难说出你在问什么。我们不允许堆栈溢出上的文本图像(代码/输入/输出/错误或其他)。请以()文本形式发布您的答案。要了解原因,请访问该网站。虽然它侧重于提问的角度,但它也适用于答案。
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)
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)