在Python中重复表达式的最pythonic方法是什么。
上下文:函数正在传递一个字典(可能包含20个元素),我需要提取和使用此字典中的值(如果存在)。像这样:
x = dict_name['key1'] if dict_name['key1'] else ''
现在,我不想为所有20个不同的密钥编写这个逻辑20次,而是想在一个地方定义这个表达式,然后重复使用它。将来维护起来会更容易。在“C / C ++”编程语言中,它是#define
或inline
函数的一个很好的例子。 Pythonic在Python中用这种方法做什么?
正如您所猜到的,我是Python的新手。所以我感谢你对这方面的帮助,或者在Python中为这个构造提供指导。
答案 0 :(得分:0)
是否有等同于" Python中的inline
取决于你问的对象和你检查的内容。
没有等价物,例如:https://stackoverflow.com/a/6442497/2707864
对于等效词,例如:https://www.safaribooksonline.com/library/view/python-cookbook-3rd/9781449357337/ch07s06.html
从实际角度来看,lambda
可以解决问题(dict.get
替换你的三元条件运算符)
dict_get = lambda key : dict_name.get(key, '')
或者您始终可以定义单行函数。
def dict_get( key ) : dict_name.get( key, '' )
Pythonicity经常(总是?)主观。