簡體   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