2024-04-23 14:27:29 发布
网友
让我们举个例子。我有这样一个普通的函数:
def function(x): for b in range(0, 5): print(b)
我想让x作为范围内的一个例外;这样,它将执行如下操作:
def function(x): for b in range(0, x): print(b) for b in range(x+1, 5): print(b)
但是如果我想做的比一个简单的print()要长,它会扩展我的函数很多。有什么解决办法吗?你知道吗
print()
这两个子范围可以"^{}合并在一起:
from itertools import chain def function(x): for b in chain(range(0, x), range(x+1, 5)): print(b)
或者也可以使用generator expression:
def function(x): for b in (v for v in range(0, 5) if v != x): print(b)
后者可以很容易地概括为支持排除多个值:
def function(*x): for b in (v for v in range(0, 5) if v not in set(x)): print(b) function(3) # -> 0 1 2 4 function(1, 3) # -> 0 2 4
跳过循环内的x:
x
for b in range(0, 5): if b == x: continue # skip to next iteration print(b)
这两个子范围可以"^{} 合并在一起:
或者也可以使用generator expression:
后者可以很容易地概括为支持排除多个值:
跳过循环内的
x
:相关问题 更多 >
编程相关推荐