Python中的函数编程

Function programming in Python

我正在尝试定义一个名为 new_f 的新函数,仅供练习:
函数的目的是:

x = ['1', '2', '3', '4']
y = new_f(x)
print(y)

那应该给出:

['4', '3', '2', '1']

所以它是 x 的反转。
我试过这样的方法:

def new_f(x):
    y = len(x)
    for z in range(y-1,-1,-1):
        r = print([x[z]])
    return r

但这给出了:

['4']
['3']
['2']
['1']

好吧,那不是我想要的,所以也许:

---------
for z in range(y-1,-1,-1):
        r = [x[z]]
return r

然后我得到:

['1']

所以他检查了所有 z 并给了我最后一个。
我该如何解决这个问题?
提前致谢。

您可以将 r 初始为空列表并将元素附加到它,最后 return r

def new_f(x):
    y = len(x)
    r=[]
    for z in range(y-1,-1,-1):
        r.append(x[z])
    return r

但是有一些优雅和更 pythonic 的方法来反转列表,如反向索引:

the_list[::-1]

或内置reversed函数:

reversed(the_list)

您可以使用 Python 的切片运算符来反转列表。

def new_f(x):
        return x[::-1]

也许你会发现它们有用:

def reverse_list(x):
    return x.reverse()

def reverse_list(x):
    return x[::-1]

def reverse_list(x):
    yield from reversed[x]