繁体   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