函数返回无,而操作返回值

问题描述

我写了一个函数,可以反转字符串的值:

def reversed_list(in_list):
    """A function that reverses the order 
    of the items in a list"""
    
    flipped_list = []
    
    [flipped_list.insert(0,in_list[k]) for k,v in enumerate(in_list)]
        
    return flipped_list
    
reversed_list([1,2,3,4,5,6])

它按预期工作。但是,如果我将函数的最后两行合并为:

return [flipped_list.insert(0,v in enumerate(in_list)]

输出列表为[None,None,None...]

这是为什么,如何将后两行结合起来,使代码尽可能优雅?

干杯

解决方法

flipped_list.insert修改列表,并返回None

如果是第一个示例,则要在flipped_list理解范围内更新list,然后返回修改后的列表。

在第二个示例中,您仍在修改flipped_list,但是返回在list理解中创建的列表,其中填充了None个值