<分区> 分区>
我有一个函数,它有一个像这样的 for 循环
def my_func():
order = [1,2,3,4,5,6,7]
my_list = []
for o in order:
tmp = is_odd(o)
if tmp:
my_list.append(tmp)
return my_list
def is_odd(n):
if n%2 != 0:
return n
else:
return False
我想把它转换成一行 python for 循环。我是这样做的
def my_func():
order = [1,2,3,4,5,6,7]
my_list = [is_odd(o) for o in order if is_odd(o)]
return my_list
def is_odd(n):
if n%2 != 0:
return n
else:
return False
此代码的问题在于它在每次循环迭代中调用了两次 is_odd 函数。有没有其他方法可以将循环转换为一行循环并仅调用一次 is_odd 函数?
(这不是原始代码。只是一个例子)
