Доступ к списку только с рекурсией и лямбдами - PullRequest
0 голосов
/ 30 мая 2020

В рамках моей домашней работы я должен получить доступ к каждому элементу списка без for l oop, чтобы использовать его в функции, которую мне разрешено использовать, например:

myList=['Hello','World']

Я попытался использовать лямбда-функции (потому что мне не разрешено объявлять функции с помощью Def), но не сработало.

function(next(myList))

Также пытался использовать next (myList), но иногда список может содержать 1000+ элементов.

Ответы [ 4 ]

1 голос
/ 30 мая 2020

Использование карты - самый короткий способ сделать это. Вам не нужна лямбда.

li = list(range(10)) # this is your list
list(map(print, li)) # view each element
1 голос
/ 30 мая 2020

Используйте лямбда с картой для применения функции к каждому элементу:

myList=['Hello','World']

list(map(lambda x: x.upper(), myList))
0 голосов
/ 30 мая 2020

Я считаю, что самый чистый способ сделать это - использовать функцию map:

l = [1,2,3]
list(map(lambda x : print(x), l))
# returns
# >> 1
# >> 2
# >> 3
0 голосов
/ 30 мая 2020

Если вы можете использовать функцию, вы можете использовать этот трюк

Вы можете использовать рекурсию для доступа ко всем элементам.

Сначала создайте функцию для чтения первого элемента и удалите этот элемент.

Используйте эту функцию снова и снова, пока список не станет пустым.

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) - это ваша пользовательская функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...