다음과 같은 목록이 있습니다.
[
'C:\\Users\\Rash\\Downloads\\Programs\\a.txt',
'C:\\Users\\Rash\\Downloads\\a.txt',
'C:\\Users\\Rash\\a.txt',
'C:\\Users\\ab.txt',
'C:\\Users\\aa.txt'
]
두 가지 조건에 따라 정렬하고 싶습니다.
내 최종 결과는 다음과 같아야합니다.
[
'C:\\Users\\aa.txt',
'C:\\Users\\ab.txt',
'C:\\Users\\Rash\\a.txt',
'C:\\Users\\Rash\\Downloads\\a.txt',
'C:\\Users\\Rash\\Downloads\\Programs\\a.txt'
]
저는 파이썬에서 람다 함수를 배우고 있으며 다음 코드를 작성했습니다.
print(sorted(mylist, key=lambda x:x.count("\\")))
그러나이 코드는 "\"의 개수로만 정렬됩니다. 알파벳으로 정렬하지 않습니다. 그 결과 " 'C : \ Users \ aa.txt'"키 앞에 " 'C : \ Users \ ab.txt'"키가 표시됩니다.
목록을 두 번 정렬 할 수 있지만 한 줄로 정렬하고 싶습니다. 람다 코드에 무엇을 추가해야합니까? 나는이 "람다"를 처음 접했기 때문에 이것을 할 방법을 생각할 수 없다. 답장 해 주셔서 감사합니다 !! :)
정렬 할 항목이 포함 된 키 함수에서 시퀀스를 반환합니다.
key=lambda x: (x.count('\\'), x.split('\\'))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다