#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))