목록의 각 요소를 정수로 나누고 싶습니다.
myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = myList/myInt
이것은 오류입니다.
TypeError: unsupported operand type(s) for /: 'list' and 'int'
이 오류가 발생하는 이유를 이해합니다. 그러나 해결책을 찾을 수 없다는 것에 좌절했습니다.
또한 시도 :
newList = [ a/b for a, b in (myList,myInt)]
오류:
ValueError: too many values to unpack
예상 결과:
newList = [1,2,3,4,5,6,7,8,9]
편집하다:
다음 코드는 예상 결과를 보여줍니다.
newList = []
for x in myList:
newList.append(x/myInt)
그러나 이것을 수행하는 더 쉽고 빠른 방법이 있습니까?
답변
관용적 방법은 목록 이해를 사용하는 것입니다.
myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = [x / myInt for x in myList]
또는 원래 목록에 대한 참조를 유지해야하는 경우 :
myList[:] = [x / myInt for x in myList]
답변
먼저 시도한 방법은 실제로 numpy 사용 하여 직접 가능합니다 .
import numpy
myArray = numpy.array([10,20,30,40,50,60,70,80,90])
myInt = 10
newArray = myArray/myInt
긴 목록, 특히 모든 종류의 과학 컴퓨팅 프로젝트에서 이러한 작업을 수행하는 경우 실제로 numpy를 사용하는 것이 좋습니다.
답변
>>> myList = [10,20,30,40,50,60,70,80,90]
>>> myInt = 10
>>> newList = map(lambda x: x/myInt, myList)
>>> newList
[1, 2, 3, 4, 5, 6, 7, 8, 9]
답변
myList = [10,20,30,40,50,60,70,80,90]
myInt = 10
newList = [i/myInt for i in myList]
답변
추상 버전은 다음과 같습니다.
import numpy as np
myList = [10, 20, 30, 40, 50, 60, 70, 80, 90]
myInt = 10
newList = np.divide(myList, myInt)
답변
myInt=10
myList=[tmpList/myInt for tmpList in range(10,100,10)]