정수 목록을 정렬하는 sort 함수를 만들었습니다.Python의 사용자 정의 정렬 함수에서 잘못된 결과가 발생했습니다.
def sort(list):
s = []
dropnum = 0
l = len(list) - 1
counter = 0
s.append(list[0])
while 1:
maximum = len(s)
if counter == l:
break
if list[counter] < s[dropnum]:
dropnum = dropnum + 1
else:
counter = counter + 1
if dropnum >= maximum:
a.append(list[counter])
else:
s.insert(dropnum, list[counter])
dropnum = 0
return s
print sort([70,9,24,82,102])
내가 출력으로 가야 : 여기 코드입니다
[102,82,70,24,9]
하지만 얻을 :
[102, 82, 24, 9, 70]
'reverse (sorted (list)) '를 사용하지 않는 이유는 무엇입니까? 또한 list라는 내장 함수가 있기 때문에 변수 목록의 이름을 지정하면 안됩니다. 이것이 숙제 인 경우 숙제로 표시하십시오. – forivall
왜'sorted()'를 다시 구현합니까? 이 숙제가 있니? – Amber
글쎄,'if dropnum> = maximum :'다음에's.append' 대신'a.append()'가 있습니다. 또한'list'를 변수 이름으로 사용하는 것은 일반적으로 좋지 않습니다. 파이썬에서 내장 객체이기 때문입니다. – Marius