检查Python中一个项是否等于多个元素之一
我想检查列表中的某个项目是否等于给定的一组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):集合在查找时更快,但要求元素是可哈希的。元组对于少量元素来说更轻便,但如果元素多了,就会变得比较慢。
另外,除非你的元素在循环中会变化,否则你应该在循环外部初始化集合或元组,这样可以避免每次都创建集合或元组带来的额外开销。