Как сделать следующее, используя лямбда-выражения в Python?Как сделать выбор с помощью лямбда-выражений python
result = None
for current in listOfObjects:
if current.number == 5:
result = current.files
break
Как сделать следующее, используя лямбда-выражения в Python?Как сделать выбор с помощью лямбда-выражений python
result = None
for current in listOfObjects:
if current.number == 5:
result = current.files
break
Вы можете использовать filter
с лямбда-выражения, если вам нужен критерий выбора, чтобы быть что-то динамический:
list_of_stuff = [type('obj', (object,), {'number' : n, 'files': ['testa', 'testb']}) for n in range(10)]
result = next(filter(lambda x: x.number==5, list_of_stuff)).files
Здесь я просто беру первый результат, как вы. Если у вас всегда есть один и тот же критерий выбора, это может иметь смысл использовать список понимание вместо:
result = next(x for x in list_of_stuff if x.number==5).files
Не то, чтобы это имело бы никакого смысла использовать лямбда здесь, только ради него:
next(filter(lambda x:x.number==5,listOfObjects)).files
Вы хотите только '.files' первого появления' .number' 5? – PinkFluffyUnicorn
Зачем вы хотите использовать лямбда для этого? –
@PinkFluffyUnicorn да, только первое появление числа 5 – devnull