繁体   English   中英

仅使用递归和 lambda 访问列表

[英]Accessing a list with only recursion and lambdas

作为我家庭作业的一部分,我必须在没有 for 循环的情况下访问每个元素 oa 列表,以便在允许使用的 function 中使用它,例如:

myList=['Hello','World']

我试过使用 lambda 函数(因为我不允许用 Def 声明函数)但没有用。

function(next(myList))

还尝试使用 next(myList) 但有时列表可以包含 1000 多个元素。

使用 lambda 和 map 将 function 应用于每个元素:

myList=['Hello','World']

list(map(lambda x: x.upper(), myList))

使用 map 是最短的方法。 您不需要 lambda。

li = list(range(10)) # this is your list
list(map(print, li)) # view each element

如果您可以使用 function 您可以使用该技巧

您可以使用递归来访问所有元素。

首先创建一个 function 来读取第一个元素并删除该元素。

一次又一次地使用那个 function 直到列表为空。

def show(my_list):
   try:
      print(my_list[0])
      del my_list[0]
      show(my_list)
   except:
      pass

或者如果你想做一些动作

new = []
def action(my_list):
   try:
      x = do_something(my_list[0])
      del my_list[0]
      new.append(x)
      action(my_list)
   except:
      pass

这里do_something(data)是您的自定义 function。

我相信最干净的方法是使用map function:

l = [1,2,3]
list(map(lambda x : print(x), l))
# returns
# >> 1
# >> 2
# >> 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM