[英]how to repeat / expand expressions in python
在Python中重復表達式的最pythonic方法是什么。
上下文:一個函數正在傳遞一個字典(可能包含20個元素), 如果存在 ,我需要從該字典中提取和使用值。 像這樣的東西:
x = dict_name['key1'] if dict_name['key1'] else ''
現在,我不想為所有20個不同的鍵編寫此邏輯20次,而是想在一個地方定義此表達式,然后重復使用它。 將來將更容易維護。 在“ C / C ++”編程語言中,它很好地體現了#define
或inline
函數。 用Python做到這一點的Python方式是什么?
如您所料,我是Python的新手。 因此,感謝您在此方面的幫助或在Python中為此構造的指針。
在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通常(總是?)是主觀的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.