访问仅包含递归和 lambda 的列表



作为我家庭作业的一部分,我必须访问列表的每个元素,而无需 for 循环才能在我可以使用的函数中使用它,例如:

myList=['Hello','World']

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

function(next(myList))

也尝试使用next(myList(,但有时列表可以有1000+元素。

将 lambda 与 map 结合使用,为每个元素应用一个函数:

myList=['Hello','World']
list(map(lambda x: x.upper(), myList))

使用地图是最快的方法。你不需要lambda。

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

如果你能使用函数,你可以使用这个技巧

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

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

一次又一次地使用该函数,直到列表为空。

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)是您的自定义函数。

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

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

最新更新