숫자 목록과 완벽하게 작동하는 정렬 알고리즘이 있습니다. 그것은 가장 낮은 것에서 가장 높은 것 순으로 정렬됩니다. 내가 필요한 것은 인수로 튜플 목록을 설정할 수 있도록 알고리즘을 수정하는 것입니다.파이썬 - 튜플 목록 정렬
def maxList(A):
return(max(num for num in A))
def obtainDigit(num, n):
return (num // 10 ** n) % 10
def linkLists(A):
lAux = []
for sublist in A:
lAux.extend(sublist)
return(lAux)
def generateSublists(A, digit):
subListsAux = [[] for i in range(255)]
for num in A:
subListsAux[obtainDigit(num, digit)].append(num)
return(subListsAux)
def radixSort(A):
iterations = len(str(maxList(A)))
for digit in range(iterations):
sublists = generateSublists(A, digit)
A = linkLists(sublists)
return(A)
튜플 목록은 실제로 이미지에서 가져온 RGB 값 집합입니다. PIL을 사용하면 (100,100,100), (255,0,0), (200,200,200), (0,255,0) 정렬 후 (0,255,0), (100,100,100) , (200,200,200), (255,0,0) 알고리즘은 각 숫자의 첫 번째 숫자를 비교하고 첫 번째 숫자로 정렬 한 후 두 번째 숫자를 비교합니다. 그리고 마지막 자리까지. 따라서 숫자를 비교하는 대신 튜플의 첫 번째 숫자를 비교 한 다음 두 번째 숫자를 비교해야합니다.
. 그러나 문제를 해결할 수 있도록 위의 알고리즘을 수정하는 방법이 있습니까? 튜플과 함께 작동하게 만들 필요가 있습니다. –