Python中基于dict_keys文本条件的if语句实现问题
解决Python中dict_keys类型的条件判断问题
因为dict_keys是字典的键视图对象,并非普通列表,直接和列表做相等判断会失效,以下是几种可行的实现方式:
方法1:直接检查元素是否存在(推荐)
利用dict_keys支持in操作符的特性,直接判断目标键是否在视图中:
condition = f.get_best().keys() if 'laplace' in condition: # 执行laplace对应的计算逻辑 pass elif 'gumbel' in condition: # 执行gumbel对应的计算逻辑 pass
方法2:转换为列表后判断
将dict_keys转换为列表,再和目标列表做相等判断(适合确定返回结果只有一个键的场景):
condition_list = list(f.get_best().keys()) if condition_list == ['laplace']: # laplace计算逻辑 elif condition_list == ['gumbel']: # gumbel计算逻辑
方法3:提取唯一键后判断
已知返回的dict_keys中只有一个键,可通过迭代器直接取出该键再做判断:
best_key = next(iter(f.get_best().keys())) if best_key == 'laplace': # laplace计算逻辑 elif best_key == 'gumbel': # gumbel计算逻辑
内容的提问来源于stack exchange,提问作者Sbobby
相关产品推荐
相关产品推荐

