if pop0_dict['max_value1_index'] in (4,5) or pop0_dict['max_value2_index'] in (4,5) or \
pop1_dict['max_value1_index'] in (4,5) or pop1_dict['max_value2_index'] in (4,5) or \
pop2_dict['max_value1_index'] in (4,5) or pop2_dict['max_value2_index'] in (4,5) or \
pop3_dict['max_value1_index'] in (4,5) or pop3_dict['max_value2_index'] in (4,5) or \
pop4_dict['max_value1_index'] in (4,5) or pop4_dict['max_value2_index'] in (4,5) or \
pop5_dict['max_value1_index'] in (4,5) or pop5_dict['max_value2_index'] in (4,5):
Run Code Online (Sandbox Code Playgroud)
它看起来非常重复,所以我想知道是否有任何方法可以使其更简单,尽管仍然可读。
che*_*ner 15
使用any:
dicts = [pop0_dict, pop1_dict, pop2_dict, pop3_dict, pop4_dict, pop5_dict]
indices = ['max_value1_index', 'max_value2_index']
if any(d[i] in (4,5) for d in dicts for i in indices):
...
Run Code Online (Sandbox Code Playgroud)
的参数any是一个生成器表达式,它根据消费者 ( any) 的要求延迟生成值。一旦any找到一个True值,它就会返回True,从而使您可以避免执行额外的不必要的包含检查。
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |