단어 목록이 있습니다.
words = ['miel', 'extraterrestre', 'al', 'automovil', 'auto', 'revestir']
사용자 지정 알파벳을 사용하여이 목록을 정렬하고 싶습니다 ( 알파벳 26자를 포함하지만 순서가 다릅니다) .
g = 'zyxwvutsrqponmlkjihgfedcba'
예상 결과:
['revestir', 'miel', 'extraterrestre', 'auto', 'automovil', 'al']
속도가 중요하고 단어 목록이 적당히 길다면 각 단어에 대한 각 문자의 색인을 검색하는 것보다 조회하는 것이 좋습니다.
당신은 문자열 기능을 사용할 수 있습니다 translate()
및 maketrans()
정렬 번역에 입력 문자열을 변환하는 빠른 방법을 만들 수 있습니다.
예를 들면 :
# make translation table
trans = str.maketrans(g, "".join(sorted(g)))
# translate words works like:
"revestir".translate(trans) # 'ivevhgri'
# sort with it:
sorted(l, key=lambda word: word.translate(trans))
# ['revestir', 'miel', 'extraterrestre', 'auto', 'automovil', 'al']
이것은 또한 문자열에 알파벳이 아닌 문자가있는 경우 오류에 탄력적이라는 이점이 있습니다 index()
. 다음과 같이 통과됩니다.
"reve*stir".translate(trans)
# 'ivev*hgri'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다