更加pythonic的做法如下?在这个例子中,我试图将注释(一个字典)构建为键值对,其中键是未修改版本,值是来自函数的返回值,其中键作为arg传递。 / p>
def func(word):
return word[-1:-6:-1].upper()
subs = {
'ALLOWED': ['one', 'two'],
'DISALLOWED': ['three', 'four']
}
comments = {}
for sub in subs['ALLOWED']:
# reverse and uppercase
comments[sub] = func(sub)
print(comments)
有人有推荐吗?完成这一点并不是很重要,但我喜欢学习python习语以及让我的代码更加pythonic的方法。谢谢!
答案 0 :(得分:4)
使用dict comprehension代替在comments = {key: func(key) for key in subs['ALLOWED']}
循环中构建词典:
{{1}}
答案 1 :(得分:0)
删除循环并使用字典理解将其替换为函数内部。然后,您可以简单地返回它。
此外,您可以使用word
反转字符串[::-1]
,而不是您正在使用的复杂[-1:-6:-1]
切片:
def func(words):
return {word: word[::-1].upper() for word in words}
这会产生同样的结果:
comments = func(subs['ALLOWED'])
print(comments)
# {'two': 'OWT', 'one': 'ENO'}