Функция карты, возвращающая список, имеет преимущество сохранения набора текста, особенно во время интерактивных сеансов. Вы можете определить lmapфункцию (по аналогии с python2 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тоже.
Был комментарий к оригинальному вопросу:
Я бы предложил переименовать в 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
map()был почти удален из языка, потому что нет причин использовать его для понимания списка илиforцикла.