함수 sqr (n) 및 list array 있습니다. 배열의 모든 요소에 sqr (n) 을 적용하는 파이썬 내장 함수가 있습니까 (요소는 배열 내부에서 변경됨 )? map () 함수 또는 기타 내장 함수를 사용하는 몇 가지 트릭 도 필요합니다.
물론 이것은 map () 함수를 사용하여 수행 할 수 있지만 반복자를 생성하고 새 목록을 얻습니다 (이전 목록은 변경되지 않음).
def sqr(n):
return n ** 2
array = [1, 2, 3, 4, 5]
array = list(map(sqr, array)) # have to reassign name to new list but elements don't change in old one.
print(array) # output: [1, 4, 9, 16, 25]
나는 다음과 같은 것을 원한다.
def sqr(n):
return n ** 2
array = [1, 2, 3, 4, 5]
some_built_in_function(sqr, array)
print(array) # output: [1, 4, 9, 16, 25]
내장 함수는 없지만 map
, 슬라이스 할당을 사용하여 동일한 결과를 얻을 수 있습니다 .
array[:] = map(sqr, array)
(문이 아닌 표현이 필요하다면 괴물 같은 표현을 사용할 수 있습니다.
array.__setitem__(slice(None), map(sqr, array))
이것은 본질적으로 슬라이스 할당이 구현되는 방법입니다. )
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다