Python Lambda Count/Loop Function

Извините, если на этот вопрос есть ответ в другом месте. Поискав в 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 )до тех пор, пока логическое значение не станет истинным.

Я знаю, что это возможно, так как я нашел несколько СУМАСШЕДШИХ примеров лямбда-выражений, которые перебирают строки в файле. Я просто не мог понять их (и не имел возможности играть с ними, поскольку они имели дело с вещами, выходящими за рамки моего уровня программирования.

Кстати, могу ли я добавить значения в начало этого цикла? (т.е. могу ли я проверить имя теста _, затем дублировать тест _имя _, затем проверить _имя _дублировать _#)?

Заранее спасибо за помощь! Лямбда-выражения (, хотя и очень крутые, )полностью засоряют мне голову.

5
задан hexparrot 14 April 2012 в 19:19
поделиться