执行以下操作的更多pythonic方法?在这个例子中,我试图将注释(字典)构建为键值对,其中键是未经修改的版本,并且该值是将键作为arg传递的函数的返回值。列表理解,但对于字典?
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的方法。谢谢!
另外,避免了内置理解-ins:'dict(zip(subs ['ALLOWED'],map(func,subs ['ALLOWED'])))'不,不是更多Pythonic,只是一个选项。我认为我更喜欢现实生活中的理解,这就是为什么这不是答案。 :-) – ShadowRanger
@ShadowRanger一点都不差。虽然这对于这个特殊的用例来说没有太大的区别,但我认为你的版本比我的版本更好(虽然我还没有测试过)。虽然,如你所说,肯定不是更pythonic; ) – elethan
Yar。我对我的“解决方案”的主要反对意见是它违反了DRY(它查找了两次“允许”)。对于小投入,你一定会赢,我的投资可能会更快,但它可能是无关紧要的。 – ShadowRanger