簡體   English   中英

如何檢查數據中是否存在鍵,如果存在則執行for循環,否則在python中使用列表理解忽略

[英]How to check if key exist in data, if exist then do for loop else ignore using list comprehension in python

我有包含鍵和值的數據(字典格式),我想使用列表理解來顯示該數據。

數據 = {'會員':'會員類型'}

注意:每個配置文件的數據不同(例如:會員資格僅適用於少數用戶。)

嘗試 1:

memberships = [data['memberships'][mem] for mem in data['memberships']]
print(memberships)

上面的代碼適用於擁有會員資格的用戶。 如果成員資格不存在,它將拋出一個 KeyError。

嘗試2:

memberships =[data['memberships'][mem] for mem in data['memberships'] if 'memberships' in data]

嘗試3:

memberships=[data['memberships'][mem] if "memberships" in data else '' for mem in data['memberships']]

我嘗試過但所有嘗試都失敗了 KeyError 。 我想檢查會員資格(密鑰)是否存在我將循環並顯示它否則忽略

您始終可以使用 if 語句:

if 'membership' in data.keys():
    memberships = [data['memberships'][mem] for mem in data['memberships']]
    print(memberships)
else:
    #Do something else if you wish
    pass

另一種選擇(如果它更適合您的代碼)是使用 try 和 except,盡管我懷疑您是否需要這種方法:

try:
    #Will try to execute this code
    memberships = [data['memberships'][mem] for mem in data['memberships']]
    print(memberships)

except:
    #If a KeyError occurs, the try block will stop and this part of the code will execute
    pass

希望這可以幫助! 如果您對我的回答有任何疑問,請隨時提問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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