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]
我正在尝试定义一个名为 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]