반응형
어디까지입니까?
나는 현재 설치를 처음 접 했고이 질문에 갇혀있어 올바른 답을 수 없습니다.
질문 : 단어 목록이 주어지면 길이 (가장 긴 것에서 가장 짧은 것) 순서대로 동일한 단어로 목록을 반환합니다. 두 번째 정렬 기준은 알파벳순이어야합니다. 힌트 : 두 가지 기능을 생각해야합니다.
이것이 내가 지금까지 가지고있는 것입니다.
def bylength(word1,word2):
return len(word2)-len(word1)
def sortlist(a):
a.sort(cmp=bylength)
return a
내림차순 인이 정렬에 두 번째 기준을 적용하는 방법을 모르겠습니다.
다음과 같이 두 단계로 수행 할 수 있습니다.
the_list.sort() # sorts normally by alphabetical order
the_list.sort(key=len, reverse=True) # sorts by descending length
Python의 안정은 안정적입니다. 즉, 길이별로 목록을 정렬하면 길이가 같을 때 요소가 알파벳 순서로 남습니다.
다음과 같이 할 수도 있습니다.
the_list.sort(key=lambda item: (-len(item), item))
일반적으로 cmp
필요하지 않습니다. key
사용하기 소지품.
n = ['aaa', 'bbb', 'ccc', 'dddd', 'dddl', 'yyyyy']
for i in reversed(sorted(n, key=len)):
print i
yyyyy dddl dddd ccc bbb aaa
for i in sorted(n, key=len, reverse=True):
print i
yyyyy dddd dddl aaa bbb ccc
-Sort your list by alpha order, then by length.
See the following exmple:
>>> coursesList = ["chemistry","physics","mathematics","art"]
>>> sorted(coursesList,key=len)
['art', 'physics', 'chemistry', 'mathematics']
>>> coursesList.append("mopsosa")
>>> sorted(coursesList,key=len)
['art', 'physics', 'mopsosa', 'chemistry', 'mathematics']
>>> coursesList.sort()
>>> sorted(coursesList,key=len)
['art', 'mopsosa', 'physics', 'chemistry', 'mathematics']
Jochen Ritzel은 cmp가 필요하지 않다고 말했고 실제로는 훌륭한 사용 사례입니다! cmp를 사용하면 길이별로 정렬 한 다음 동시에 알파벳순으로 정렬 할 수있어 두 번 정렬하는 데 필요한 시간의
def cmp_func(a, b):
# sort by length and then alphabetically in lowercase
if len(a) == len(b):
return cmp(a, b)
return cmp(len(a), len(b))
sorted_the_way_you_want = sorted(the_list, cmp=cmp_func)
예 :
>>> the_list = ['B', 'BB', 'AA', 'A', 'Z', 'C', 'D']
>>> sorted(the_list, cmp=cmp_func)
['A', 'B', 'C', 'D', 'Z', 'AA', 'BB']
참고 목록 인 경우 대문자와 소문자의 혼합 교체 cmp(a, b)
와 cmp(a.lower(), b.lower())
'는'> 'Z'정렬로 .
python3에서는 __lt__
스타일 비교 함수가 정의되어 있거나 당신을 위해 그렇게해야 functools.cmp_to_key()
합니다.
반응형
'ProgramingTip' 카테고리의 다른 글
해당하는 Maven 2 어셈블리 : "시스템"범위의 jar가 포함되지 않음 (0) | 2020.12.07 |
---|---|
마더 프레임 워크에서 상위 5 개 선택 (0) | 2020.12.07 |
extern은 C #에서 어떻게 작동 작동? (0) | 2020.12.07 |
고정 된 시간 간격마다 작업을 반복적으로 실행하는 방법 (0) | 2020.12.07 |
여러 문자 구분 기호를 기반으로 분할 분할 (0) | 2020.12.07 |