tjd6411   9달 전

list(word) == sorted(word, key=word.find)

이 코드에서 word.find가 어떻게 돌아가서 해결해주는지 잘 모르습니다.

dldyddlwl   9달 전

word.find는 찾고자하는 서브스트링이 최초로 등장하는 인덱스를 리턴해줍니다! 그런데 여기서 sorted의 비교(키) 함수로써 사용이 되는데,

예시를 들어보겠습니다.

aaabccca 라는 그룹단어가 아닌 단어에 대해서,

sorted 함수는 word.find라는 함수를 통해 정렬하고자 할겁니다. iterable의 항목들, 각 원소(각 알파벳)들이 비교를 통해서 정렬될 것입니다. 그렇다면 find에 의해서,

등장하는 순서에 따라 정렬되게 됩니다. 그런데 a라는 알파벳이 또 등장하게 된다면, a는 find에 의해서 키값이 0이 나올테니( a가 가장 처음 등장하는 인덱스 0 )

aaabccca 가 아닌 aaaabccc 로 정렬되게 될 것입니다. 그렇다면 list(word) 값과는 다르게 되겠죠. ( aaabccca != aaaabccc )

tjd6411   9달 전

감사합니다. 덕분에 이해가 됐습니다.

댓글을 작성하려면 로그인해야 합니다.