대문자 앞에 모든 소문자 알파벳 단어를 가져 오기 위해 목록을 정렬하는 방법은 무엇입니까?

Ibrahim Quraish |

링크를 따라 가서 원하는 출력을 얻기 위해 다양한 확률을 시도했습니다.

sorted(['aa', 'bb', '_dd', 'BB', 'AA'])
['AA', 'BB', '_dd', 'aa', 'bb']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True)
['bb', 'aa', '_dd', 'BB', 'AA']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], key=str.lower)
['_dd', 'aa', 'AA', 'bb', 'BB']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True, key=str.lower)
['bb', 'BB', 'aa', 'AA', '_dd']

sorted(sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=False), key=str.lower)
['_dd', 'AA', 'aa', 'BB', 'bb']

sorted(sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True), key=str.lower)
['_dd', 'aa', 'AA', 'bb', 'BB']

sorted(sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True), key=lambda x: (x.lower(), x.swapcase()))
['_dd', 'aa', 'AA', 'bb', 'BB']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], key=str.istitle)
['aa', 'bb', '_dd', 'BB', 'AA']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True, key=str.istitle)
['aa', 'bb', '_dd', 'BB', 'AA']

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=False, key=str.istitle)
['aa', 'bb', '_dd', 'BB', 'AA']

sorted(sorted(['aa', 'bb', '_dd', 'BB', 'AA']), key=str.istitle)
['AA', 'BB', '_dd', 'aa', 'bb']

sorted(sorted(['aa', 'bb', '_dd', 'BB', 'AA'], reverse=True), key=str.istitle)
['bb', 'aa', '_dd', 'BB', 'AA']

하지만이 순서대로 출력이 필요합니다.

['_dd', 'aa', 'bb', 'AA', 'BB']
kirbyfan64sos

이 시도:

sorted(['aa', 'bb', '_dd', 'BB', 'AA'], key=lambda s: (s.upper() == s, s))

튜플은 두 번째 항목 이전에 첫 번째 항목으로 정렬되고 bool은 true 이전에 False로 정렬되므로에서 s.upper() == s대문자가 아닌 모든 항목을 다른 항목보다 먼저 정렬합니다.

목적이 언어 중심 정렬 인 경우에는 key=functools.cmp_to_key(locale.strcoll)대신 또는 이와 유사한 방법 을 사용해야 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관