알고리즘

[Python] TypeError: 'NoneType' object is not subscriptable

minari 2022. 3. 21. 23:39

알고리즘 분석 과제를 하던 중 생긴 오류 . .

전혀 예상 못한 오류였다. 구글링해서 금방 찾을 수 있었습니당


 

list1 = [1, 2]
list1 = list.sort(list1)
temp = list1[0]

와 같은 코드는 위 오류가 발생한다.

왜냐하면 list.sort()는 list를 변환 시킨 후 아무것도 변환하지 않기 때문이다.

따라서 위 코드는 list1의 배열을 지운 것과 같음

 

아래와 같이 바꿔줘야한다!

list1 = [1, 2]
list1.sort()
temp = list1[0]
print(temp)

 

 

나의 경우, self.arr 값에 list.arr()를 받아버려서 값을 지웠더니 오류가 발생했던 것

def __init__(self, n):
	self.arr = [random.randint(1, n) for x in range(n)].sort()
	.
	.
	.
def binSearch(self):
	.
	.
	point = int((right+left)/2)
    	num = self.arr[point] # 여기에서 오류 발생
    .
    .

 

따라서 이렇게 수정해주면 완료 ~!~

def __init__(self, n):
	self.arr = [random.randint(1, n) for x in range(n)]
	.
	.
	.
def binSearch(self):
	self.arr.sort()
	.
	.
	point = int((right+left)/2)
    	num = self.arr[point]
    .
    .