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

5 投票
3 回答
4142 浏览
提问于 2025-04-17 05:34

我想检查列表中的某个项目是否等于给定的一组n个元素中的任何一个,如果是的话,就执行某个操作。

比如,最直观但又繁琐且不太好看的方法是:

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

有没有更好的方法来进行检查呢?

3 个回答

1

你可以直接写 if item in list2: do something,前提是 list2 里已经放好了你想要匹配的元素。

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
9

你可以使用 in 操作符:

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

对于元素,你可以使用集合(set)或元组(tuple):集合在查找时更快,但要求元素是可哈希的。元组对于少量元素来说更轻便,但如果元素多了,就会变得比较慢。

另外,除非你的元素在循环中会变化,否则你应该在循环外部初始化集合或元组,这样可以避免每次都创建集合或元组带来的额外开销。

撰写回答