Функция отображения списка с возвратом имеет преимущество сохранения набора текста, особенно во время интерактивных сеансов. Вы можете определить функцию lmap
(по аналогии с python2's imap
), которая возвращает список:
lmap = lambda func, *iterable: list(map(func, *iterable))
Тогда вызов lmap
вместо map
выполнит задание: lmap(str, x)
короче на 5 символов (30% в этом случае), чем list(map(str, x))
и, конечно, короче [str(v) for v in x]
. Вы также можете создавать похожие функции для filter
.
Был комментарий к исходному вопросу:
Я бы предложил переименовать в Get Map (), чтобы вернуть список в Python 3. *, как это применимо ко всем версиям Python3. Есть ли способ сделать это? - meawoppl 24 января в 17:58
blockquote>Возможно, это , но это очень плохая идея. Просто для удовольствия, вот как вы можете (но не должны) делать это:
__global_map = map #keep reference to the original map lmap = lambda func, *iterable: list(__global_map(func, *iterable)) # using "map" here will cause infinite recursion map = lmap x = [1, 2, 3] map(str, x) #test map = __global_map #restore the original map and don't do that again map(str, x) #iterator