Лямбда-редактирование N-го объекта списка и возврат отредактированного списка

#python #list #lambda #map-function

Вопрос:

У меня есть список а.

 a = [[10,13,14],[34,23,4],[1,6,3]]  

Теперь я хочу увеличить N-е целое число каждого подсписка в списке.

 def increase(sublistOrg):  sublist = sublistOrg.copy()  sublist[1]  = 1  return sublist  aEdited = list(map(increase, a))  

Могу ли я заменить дополнительную функцию «увеличить» лямбда-выражением?

Комментарии:

1. Это изменяет исходный список на месте и назначает его дополнительному. Является ли это намеренным и обязательным требованием, или создание нового списка также нормально?

2. Я это исправил. Спасибо @MisterMiyagi

Ответ №1:

 lambda x: [x[i]   1 if i == 1 else x[i] for i in range(len(x))]  

Это работает, но, вероятно, это хуже, чем просто использование «нормальной» функции

Ответ №2:

Вы можете сделать это с помощью лямбды, но это, вероятно, уродливее, чем решение, которое у вас есть:

 aEdited = list(map(lambda x: [element if index != 1 else element   1 for index, element in enumerate(x)], a))