检查一个项是否等于Python中许多元素中的一个

Fla*_*ake 4 python

我想检查列表中的项是否等于给定的n个元素集中的任何一个元素,如果是,则执行某些操作.

例如,最直观但当然繁琐和丑陋的方式是:

for item in List:
    if (item == element1) or (item == element2) or ... or (item == elementn):
        do something
Run Code Online (Sandbox Code Playgroud)

有哪些更好的检查方法?

Dun*_*can 8

您使用in运营商:

elements = set((element1, element2, ..., elementn))
...
if item in elements:
   do something
Run Code Online (Sandbox Code Playgroud)

对元素使用集合或元组:对于查找,集合更快,但要求元素是可散列的.对于少数元素,元组的权重较轻,但如果元素数量较多,则元组会变慢.

此外,除非元素通过循环变化,否则应该在循环外部初始化集合,以避免每次创建集合/元组的开销.