목록 리턴 맵 기능은 특히 대화식 세션에서 타이핑을 저장하는 이점이 있습니다. list를 반환 하는 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
.
원래 질문에 대한 의견이있었습니다.
모든 Python3 버전에 적용되므로 Python 3. *에서 목록을 반환하도록 Getting map ()으로 이름을 바꾸는 것이 좋습니다. 이 방법이 있습니까? – meawoppl 1 월 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
루프.