Извините, если на этот вопрос есть ответ в другом месте. Поискав в Google и Stackforum, я не нашел ничего, из чего можно было бы экстраполировать ответы; но я чувствую, что частью этого являюсь я.
Я пытаюсь разработать лямбда-выражения как концепцию, и как часть этого я как бы ищу способы ее использования.
ТАК, если это колоссальная глупость с лямбдой с функциональной точки зрения, не стесняйтесь, дайте мне знать и объяснить. Но в любом случае, я все еще хочу знать ответ/все еще хочу знать, как это сделать с помощью языка python.
Итак, в целях тестирования у меня есть:
my_test = 'test_name'
testlist = ['test_name', 'test_name_dup', 'test_name_dup_1', 'test_name_dup_3']
Я хочу использовать лямбда для создания одной функции, которая выполняет цикл и возвращает первое имя теста __#, которого нет в списке тестов. Функциональность в конечном итоге будет применяться к именам файлов,но в целях тестирования мне пришлось отказаться от фактического чтения имен файлов --, что дало мне слишком много способов что-то испортить.
Но мой _тест должен иметь возможность изменяться, и список тестов будет списком путей к файлам.
Итак, я ищу такую функцию, как:
new_name = lambda x: my_test + '_' + str(x)
Но начальное значение должно быть x = 1, и это должно продолжаться до тех пор, пока новое имя _не окажется в списке тестов. Похоже, что с:
bool(new_name not in testlist)
можно работать.
Но я не могу придумать способ установить начальный x равным 1 и выполнить цикл с (x+1 )до тех пор, пока логическое значение не станет истинным.
Я знаю, что это возможно, так как я нашел несколько СУМАСШЕДШИХ примеров лямбда-выражений, которые перебирают строки в файле. Я просто не мог понять их (и не имел возможности играть с ними, поскольку они имели дело с вещами, выходящими за рамки моего уровня программирования.
Кстати, могу ли я добавить значения в начало этого цикла? (т.е. могу ли я проверить имя теста _, затем дублировать тест _имя _, затем проверить _имя _дублировать _#)?
Заранее спасибо за помощь! Лямбда-выражения (, хотя и очень крутые, )полностью засоряют мне голову.