我想检查列表中的项是否等于给定的n个元素集中的任何一个元素,如果是,则执行某些操作.
例如,最直观但当然繁琐和丑陋的方式是:
for item in List:
if (item == element1) or (item == element2) or ... or (item == elementn):
do something
Run Code Online (Sandbox Code Playgroud)
有哪些更好的检查方法?
您使用in运营商:
elements = set((element1, element2, ..., elementn))
...
if item in elements:
do something
Run Code Online (Sandbox Code Playgroud)
对元素使用集合或元组:对于查找,集合更快,但要求元素是可散列的.对于少数元素,元组的权重较轻,但如果元素数量较多,则元组会变慢.
此外,除非元素通过循环变化,否则应该在循环外部初始化集合,以避免每次创建集合/元组的开销.