>>>uneven = [['a','b','c'],['d','e'],['g','h','i']]
>>>map(None,*uneven)
O/P : [(a ','d ','g '), ('b ','e ','h '), ('c ', 없음,'i '다음지도 기능은 어떻게 작동합니까?
위 코드는 행렬의 전치를 찾는 데 사용할 수 있습니다. 그러나 나는 그것이 어떻게 작동하는지 이해할 수 없다.
>>>uneven = [['a','b','c'],['d','e'],['g','h','i']]
>>>map(None,*uneven)
O/P : [(a ','d ','g '), ('b ','e ','h '), ('c ', 없음,'i '다음지도 기능은 어떻게 작동합니까?
위 코드는 행렬의 전치를 찾는 데 사용할 수 있습니다. 그러나 나는 그것이 어떻게 작동하는지 이해할 수 없다.
*
연산자를 사용하면 목록이지도의 위치 인수로 분리됩니다. 당신이 map
에 여러 반복 가능 객체를 전달하는 경우
>>> map(None, ['a','b','c'], ['d','e'], ['g','h','i'])
, 그때 (이 경우 None
에서) 함수가 병렬로 모든 반복자에 적용 : 이것은 당신이 실제로 실행하고있는 것입니다. 먼저 'a', 'd', 'g'
을 처리하는 식으로 진행합니다.
편집 : 으로 당신이 map
함수로 None
에서 통과 할 때, 그것은 식별 기능, 즉 lambda id: id
수 맡았다 특별 도착, 아래 존에 의해 지적했다. 하나 개 이상의 시퀀스가 주어지면 map
에서 None
의 사용이 특별한 케이스가 map
의 문서에서 파이썬 3
이 답변에서 누락 된 핵심 포인트 중 하나는 'lambda id : id'라고 명시된 호출 가능 객체로'None'이 특수하게 사용된다는 것입니다. 이제는 Python 3.x에서 금지되었습니다. –
및 기타 참고 - "더 낫게 쓰여집니다" 'list (izip_longest (* uneven))'(2to3/다른 툴은'zip_longest'로 바뀌기 때문에 어쨌든 필요합니다) –
map(function, sequence[, sequence, ...]) -> list
에서 제거되었습니다의 함수는 인수 목록 불려 각 시퀀스의 해당 항목으로 구성되고 모든 시퀀스의 길이가 동일한 경우 누락 값 대신 없음을 사용하십시오. 함수가 포함되지 않은 경우
, 그것이 시퀀스에서 항목의 위치에 따라 운전자 *
zip
으로 시퀀스를 사용하여 시퀀스
의 아이템의 목록을 반환한다.
'map'이 무엇을하는지 이해합니까? '* '는 무엇을 의미합니까? – Maroun
예, 이해합니다. "없음"은 나를 조금 혼란스럽게 만들었습니다. 지금은 이해. – purudpd