목록이 있습니다.
L = ['1.1.1.', '1.1.10.', '1.1.11.', '1.1.12.', '1.1.13.', '1.1.2.', '1.1.3.', '1.1.4.']
다음 순서로 정렬하고 싶습니다.
1.1.1.
1.1.2.
1.1.3.
1.1.4.
1.1.10.
1.1.11.
1.1.12.
1.1.13.
다음 방법은 결과를 생성하지 않습니다.
L.sort(key=lambda s: int(re.search(r'.(\d+)',s).group(1)))
마지막 부분을 가져 와서 int로 변환하고 비교를위한 키로 반환하십시오.
print(sorted(L, key=lambda x: int(x.split(".")[2])))
당신이 원하는 경우 모든 부분이 고려되어야 , 당신은 다음과 같이 할 수있다
print(sorted(L, key=lambda x: [int(i) for i in x.rstrip(".").split(".")]))
.
문자열의 끝 부분을 제거 하고이를 기반으로 분할 .
한 다음 각 부분을 int
. 반환 된 목록은 비교에 사용됩니다.
Python에서 다양한 시퀀스를 비교하는 방법에 대한 자세한 내용은 여기 에서 확인할 수 있습니다.
산출
['1.1.1.','1.1.2.','1.1.3.','1.1.4.','1.1.10.','1.1.11.','1.1.12.','1.1.13.']
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다