Функция отображения списка с возвратом имеет преимущество сохранения набора текста, особенно во время интерактивных сеансов. Вы можете определить функцию lmap
(по аналогии с imap
в python2), которая возвращает список:
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
.
Был комментарий к оригинальному вопросу:
Я бы предложил переименовать в Getting map (), чтобы получить список в Python 3. *, так как он применяется ко всем версиям Python3. Есть ли способ сделать это? - meawoppl 24 января в 17: 58
Это возможно , но это очень плохая идея. Просто для забавы, вот как вы можете (, но не ) делать это:
__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