Python中的函数编程

VlS*_*VlS 2 python functional-programming function

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

x = ['1', '2', '3', '4']
y = new_f(x)
print(y)
Run Code Online (Sandbox Code Playgroud)

这应该给:

['4', '3', '2', '1']
Run Code Online (Sandbox Code Playgroud)

所以它与x相反.
我试过这样的事情:

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

但是这给了:

['4']
['3']
['2']
['1']
Run Code Online (Sandbox Code Playgroud)

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

---------
for z in range(y-1,-1,-1):
        r = [x[z]]
return r
Run Code Online (Sandbox Code Playgroud)

我得到:

['1']
Run Code Online (Sandbox Code Playgroud)

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

Kas*_*mvd 5

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

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

但是有一些优雅和更加pythonic的方法来反转像反向索引这样的列表:

the_list[::-1]
Run Code Online (Sandbox Code Playgroud)

或内置reversed功能:

reversed(the_list)
Run Code Online (Sandbox Code Playgroud)