Python:检查值是否在列表中,无论CaSE如何

neo*_*ser 10 python loops

我想检查一个值是否在列表中,无论字母是什么情况,我都需要有效地进行.

这就是我所拥有的:

if val in list:
Run Code Online (Sandbox Code Playgroud)

但我希望它忽略案例

Mik*_*wis 16

check = "asdf"
checkLower = check.lower()

print any(checkLower == val.lower() for val in ["qwert", "AsDf"])

# prints true
Run Code Online (Sandbox Code Playgroud)

使用any()函数.这个方法很好,因为你没有重新创建列表以包含小写,它正在迭代列表,所以一旦找到一个真值,它就会停止迭代并返回.

演示:http://codepad.org/dH5DSGLP

  • +1是唯一一个懒惰的人(这听起来不像是恭维写出来......好吧,你知道我的意思).将`check.lower()`移出生成器表达式也可能是个好主意. (2认同)