Функція карти, що повертається у списку, має перевагу в збереженні набору тексту, особливо під час інтерактивних сесій. Ви можете визначити 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
.
Був коментар до початкового питання:
Я б запропонував перейменувати в 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
циклу.