我在真正的 Django 函数中得到了这段代码。如果满足某些条件,项目将添加到 列表
。
ret = []
if self.taken():
ret.append('taken')
if self.suggested():
ret.append('suggested')
#.... many more conditions and appends...
return ret
它非常实用。你知道它的作用,这很棒......
但我已经学会欣赏 list
和 dict
理解的美妙之处。
是否有更Python 的方式来表达这个结构,或许可以一次性初始化和填充数组?
最佳答案
创建映射字典:
self.map_dict = {'taken': self.taken,
'suggested': self.suggested,
'foo' : self.bar}
[x for x in ['taken', 'suggested', 'foo'] if self.map_dict.get(x, lambda:False)()]
相关:Most efficient way of making an if-elif-elif-else statement when the else is done the most?
关于python - 是否有 "Pythonic"方法来创建包含条件项的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831742/