code

값 집합 정렬

codestyles 2020. 8. 30. 08:39
반응형

값 집합 정렬


다음과 같은 값이 있습니다.

set(['0.000000000', '0.009518000', '10.277200999', '0.030810999', '0.018384000', '4.918560000'])
set(['4.918859000', '0.060758000', '4.917336999', '0.003949999', '0.013945000', '10.281522000', '0.025082999'])  

각 값 set을 오름차순 으로 정렬하고 싶습니다 . 세트간에 정렬하는 것이 아니라 각 세트의 값을 정렬하고 싶습니다.


댓글에서 :

각 세트를 정렬하고 싶습니다.

쉽습니다. 모든 집합 s(또는 반복 가능한 다른 항목) 에 대해 정렬 된 순서 sorted(s)로의 요소 목록을 반환합니다 s.

>>> s = set(['0.000000000', '0.009518000', '10.277200999', '0.030810999', '0.018384000', '4.918560000'])
>>> sorted(s)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '10.277200999', '4.918560000']

sorted당신에게주고있다 list하는 없습니다 set. 두 세트의 요점 때문이다 수학 하고있는 거의 모든 프로그래밍 언어 세트를 : *이 주문 아니에요이다 {1, 2}{2, 1}같은 집합입니다.


이러한 요소를 문자열로 정렬하지 않고 숫자로 정렬하고 싶지는 않을 것입니다 (따라서 4.918560000은 10.277200999 이후가 아닌 10.277200999 이전에 올 것입니다).

가장 좋은 해결책은 처음에 숫자를 문자열이 아닌 숫자로 저장하는 것입니다. 그러나 그렇지 않은 경우 key함수 를 사용해야 합니다.

>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']

자세한 내용 은 공식 문서 Sorting HOWTO참조하십시오 .


* 예외 사항은 주석을 참조하십시오.

참고 URL : https://stackoverflow.com/questions/17457793/sorting-a-set-of-values

반응형