作为家庭作业的一部分,我必须访问列表中的每个元素而没有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