Den*_*neb 0 python if-statement
以此代码为例:
if int(str(x)[len(str(x)) - 1]) == 0 or int(str(x)[len(str(x)) - 1]) == 5:
return False
Run Code Online (Sandbox Code Playgroud)
假设我有一个更大的列表or,是否有更简单的方法来做到这一点?
好的,既然我知道使用if x in ( , , , etc),我该如何实现这个:
filter(lambda x: int(str(x)[len(str(x)) - 1]) in (0, 5), range(1000)) 得到它,错误的括号,错误的python程序员.
最简单的方法是这样的:
if x in (2,3):
....
Run Code Online (Sandbox Code Playgroud)
如果你有大量的候选值,那么这将导致线性搜索,这可能是昂贵的.如果这很重要,那么一套可以带来更好的表现:
if x in set((2,3)):
....
Run Code Online (Sandbox Code Playgroud)
请注意,使用集合的任何性能优势只有在集合可以实例化一次,但多次测试成员资格时才会出现.
myset = set((2,3))
....
if x in myset:
....
Run Code Online (Sandbox Code Playgroud)
在我看来,你实际上是用5测试可分性,可以这样做:
if x % 5 == 0:
....
Run Code Online (Sandbox Code Playgroud)