반응형
값 집합 정렬
다음과 같은 가치관이 있습니다.
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
(또는 반복 가능한 다른 모든 항목), 다음 요소의 목록을 반환합니다.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보다 앞에 나옵니다).
가장 좋은 해결책은 우선 숫자를 문자열이 아닌 숫자로 저장하는 것입니다.하지만 그렇지 않다면, 당신은 단지 사용하기만 하면 됩니다.key
함수:
>>> sorted(s, key=float)
['0.000000000', '0.009518000', '0.018384000', '0.030810999', '4.918560000', '10.277200999']
자세한 내용은 공식 문서의 정렬 방법을 참조하십시오.
예외는 주석을 참조하십시오.
Python 3.7 이후로 dict는 삽입 순서를 유지합니다.따라서 세트를 주문하지만 구성원 자격 검사를 일정한 시간 내에 수행하려면 다음을 사용하여 정렬된 목록에서 사전을 만들 수 있습니다.dict.fromkeys()
(값은None
기본값).
s = {10, 39, 3}
s_sorted = dict.fromkeys(sorted(s)) # ascending order
# {3: None, 10: None, 39: None}
s_sorted = dict.fromkeys(sorted(s, reverse=True)) # descending order
# {39: None, 10: None, 3: None}
언급URL : https://stackoverflow.com/questions/17457793/sorting-a-set-of-values
반응형
'programing' 카테고리의 다른 글
SUMIF 기능에 대한 명명된 범위의 특정 열 선택 (0) | 2023.06.08 |
---|---|
서브셋보다 []이 더 좋은 이유는 무엇입니까? (0) | 2023.06.08 |
루비에서 '예외 => e를 구출하는 것은 왜 나쁜 스타일인가요? (0) | 2023.06.08 |
Android:소프트 키보드가 내 보기를 위로 밀어 올리는 것을 방지하려면 어떻게 해야 합니까? (0) | 2023.06.08 |
C에서 데이터 섹션과 bss 섹션의 차이 (0) | 2023.06.08 |