簡體   English   中英

如何在python中重復/擴展表達式

[英]how to repeat / expand expressions in python

在Python中重復表達式的最pythonic方法是什么。

上下文:一個函數正在傳遞一個字典(可能包含20個元素), 如果存在 ,我需要從該字典中提取和使用值。 像這樣的東西:

x = dict_name['key1'] if dict_name['key1'] else ''

現在,我不想為所有20個不同的鍵編寫此邏輯20次,而是想在一個地方定義此表達式,然后重復使用它。 將來將更容易維護。 在“ C / C ++”編程語言中,它很好地體現了#defineinline函數。 用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM