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

时间:2011-11-03 15:44:12

标签: python

我想检查一个列表中的项是否等于给定n个元素集中的任何一个元素,如果是,做一些事情。

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

for item in List:
    if (item == element1) or (item == element2) or ... or (item == elementn):
        do something

有哪些更好的检查方法?

3 个答案:

答案 0 :(得分:8)

您使用in运算符:

elements = set((element1, element2, ..., elementn))
...
if item in elements:
   do something

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

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

答案 1 :(得分:4)

for item in my_ist:
    if item in (element1, element2, ..., elementn):
        # do something

如果my_list中的项目的顺序和频率无关紧要,您也可以使用

for item in set(my_list) & set((element1, element2, ..., elementn)):
    # do something

答案 2 :(得分:1)

您只需使用要匹配的元素正确初始化list2即可if item in list2: do something