티스토리 뷰
리스트를 소트하는 여러가지 방법
1 2 3 4 5 6 7 8 9 10 11 | import random def makeRandoms(size, limit): result = [] for i in range(size): result.append(random.randrange(0,limit)) return result random.seed(1) result = makeRandoms(20,100) print(result) | cs |
우선 20개의 랜덤한 변수(0~99)를 리스트에 삽입하고 결과를 확인했다.
seed에 1을 넣은것은 시드를 고정시켜서 결과를 확인하기 이전에 랜덤값이 바뀌지 않게 하기 위해서이다.
첫번째 방법은 리스트 클래스 내부에 있는 sort함수 사용하기.
1 2 | result.sort() print(result) |
참 쉽다. sort함수가 어떤 알고리즘으로 동작하는지 알 필요가 없다 자동으로 정렬시켜 주기 때문에.
두번째 방법은 리스트 클래스 내부에 있는 sort함수를 사용하여 내림차순으로 정렬
1 2 | result.sort(reverse=True) print(result) | cs |
마찬가지로 리스트 클래스 내부에 있는 sort 함수를 사용했다. 1번에서의 방법과 다른점은 키워드 파라미터를 이용하여 reverse 값을 True로 주었다는 것이다. 이 Reverse 라는 매개변수는 디폴트값으로 False를 가지고 있어서 별도로 입력하지 않았을때 오름차순으로 동작하게 된다.
세번째 방법. 외부 함수인 sorted함수 사용하기
1 2 | other = sorted(result) print(other) | cs |
sorted 함수는 파이썬 내부에서 지원하는 기본 함수이다. 지금 예제에서 사용하는 리스트 클래스는 내부에 sort라는 함수를 제공하지만 다음에 알아볼 tuple이나 dictionary는 sort라는 함수를 제공하지 않기때문에 해당 클래스를 정렬 시킬때는 이 sorted 클래스를 사용하여야 한다. 리턴값으로 정렬된 내용을 반환하니 저장하여 출력하는 예제가 되겠다.
네번째 방법. 마찬가지로 외부함수인 sorted함수를 사용하여 내림차순으로 정렬하기이다.
other = sorted(result,reverse=True)
print(other)
매개변수로는 위와같이 정렬할 내용(예제에서는 리스트)와 함께 reversed=True를 키워드 파라미터로 전달하고 반환값으로 정렬된 내용을 받는다.
다섯번째 방법은 키값을 만들어서 사용자 정의 정렬하기 이다.
1 2 3 4 5 | def lastDigit(n): return n%10 other = sorted(result, reverse=True, key = lastDigit) print(other) | cs |
위의 코드는 2자리 숫자를 가진 리스트에서 십의자리와는 무관하게 일의자리의 크기를 기준으로 정렬을 한다.
1 2 3 4 5 | def digitSum(n): return n/10 + n %10 other = sorted(result,reverse=True,key=digitSum) print(other) | cs |
같은 방법을 이용하여 1의 자리와 10의자리의 합으로 정렬을 하였다.
'파이썬' 카테고리의 다른 글
파이썬의 포인터 (2) | 2015.05.19 |
---|---|
파이썬 예제 : 튜플(Tuple)을 정렬(Sort)하는 여러가지 방법 (1) | 2015.05.19 |
파이썬 예제 : 별(*) 찍기 (3) | 2015.05.19 |
파이썬 예제 : 달팽이 그리기, 똬리배열 (0) | 2015.05.19 |
파이썬 예제 : 야구게임 만들기 (4) | 2015.05.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 파이썬
- 터미널
- 클래스
- 유즈케이스
- 자료구조
- 프로세스
- 쓰레드
- 소켓 프로그래밍
- 소켓
- socket
- 티라노 시그널
- 악보
- C++
- 클라이언트
- 파일
- 리눅스
- 안드로이드
- 라즈베리파이
- C/C++
- UML
- 액터
- 스레드
- 정렬
- C
- 티그널
- Sort
- 파이썬예제
- 디렉터리
- 데이터베이스
- MFC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함