Skip to main content
 首页 » 编程设计

python之在 Python 循环中在一行中声明变量

2025年05月04日14qq号

<分区>

我有一个函数,它有一个像这样的 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 函数?

(这不是原始代码。只是一个例子)