多重';在';Python中的运算符?
是否有一种在字典中查找关键字的速记方法? 我可以在和和运算符中使用多个多重';在';Python中的运算符?,python,Python,是否有一种在字典中查找关键字的速记方法? 我可以在和和运算符中使用多个,而不是使用以下运算符: ('somekey' in d) and ('someotherkey' in d) and ('somekeyggg' in d) 这个怎么了?它看起来非常清晰和优雅,如果你必须为8个或9个键来做它会让人恼火。三键版本不错,也没有任何实际问题。@Gareth:你为什么要添加拆分?@reno很抱歉挑出了错误,但我相信这会是一个错误。这应该改回原来的形式。没有编辑的理由。@Gareth:您可以在自己的
,而不是使用以下运算符:
('somekey' in d) and ('someotherkey' in d) and ('somekeyggg' in d)
这个怎么了?它看起来非常清晰和优雅,如果你必须为8个或9个键来做它会让人恼火。三键版本不错,也没有任何实际问题。@Gareth:你为什么要添加拆分?@reno很抱歉挑出了错误,但我相信这会是一个错误。这应该改回原来的形式。没有编辑的理由。@Gareth:您可以在自己的回答中解释为什么您认为使用字符串和split()
更好,但是我看不出有什么理由改变其他答案来遵循这种方法。@Marty:这不是你在这里挑的一个毛病:生成器表达式在第一个单词上短路,它不在d
中。列表理解将在调用all
函数之前创建整个布尔值列表。在生成器表达式中使用all()
和any()
是一个非常酷的特性。
all( word in d for word in [ 'somekey', 'someotherkey', 'somekeyggg' ] )
set(['somekey', 'someotherkey', 'somekeyggg']).issubset(d)