2016년 3월 24일 목요일

파이썬 정렬을 위한 .iteritems() 설명과 정렬방법들

iteritems()는 '키'와 '값'의 쌍을 iterator(반복자)로 반환 ex) a = {} a['1'] = ('one') a['2'] = ('two') for i, j in a.iteritems(): print i pintt j -> 1 one 2 two ------------------------ 리스트를 소트하는 여러가지 방법 첫번째 방법은 리스트 클래스 내부에 있는 sort함수 사용하기. result.sort() print(result) 참 쉽다. sort함수가 어떤 알고리즘으로 동작하는지 알 필요가 없다 자동으로 정렬시켜 주기 때문에. 두번째 방법은 리스트 클래스 내부에 있는 sort함수를 사용하여 내림차순으로 정렬 result.sort(reverse=True) print(result) 마찬가지로 리스트 클래스 내부에 있는 sort 함수를 사용했다. 1번에서의 방법과 다른점은 키워드 파라미터를 이용하여 reverse 값을 True로 주었다는 것이다. 이 Reverse 라는 매개변수는 디폴트값으로 False를 가지고 있어서 별도로 입력하지 않았을때 오름차순으로 동작하게 된다. 세번째 방법. 외부 함수인 sorted함수 사용하기 other = sorted(result) print(other) cs sorted 함수는 파이썬 내부에서 지원하는 기본 함수이다. 지금 예제에서 사용하는 리스트 클래스는 내부에 sort라는 함수를 제공하지만 다음에 알아볼 tuple이나 dictionary는 sort라는 함수를 제공하지 않기때문에 해당 클래스를 정렬 시킬때는 이 sorted 클래스를 사용하여야 한다. 리턴값으로 정렬된 내용을 반환하니 저장하여 출력하는 예제가 되겠다. 네번째 방법. 마찬가지로 외부함수인 sorted함수를 사용하여 내림차순으로 정렬하기이다. other = sorted(result,reverse=True) print(other) 매개변수로는 위와같이 정렬할 내용(예제에서는 리스트)와 함께 reversed=True를 키워드 파라미터로 전달하고 반환값으로 정렬된 내용을 받는다. 다섯번째 방법은 키값을 만들어서 사용자 정의 정렬하기 이다. def lastDigit(n): return n%10 other = sorted(result, reverse=True, key = lastDigit) print(other) Colored by Color Scripter cs 위의 코드는 2자리 숫자를 가진 리스트에서 십의자리와는 무관하게 일의자리의 크기를 기준으로 정렬을 한다. def digitSum(n): return n/10 + n %10 other = sorted(result,reverse=True,key=digitSum) print(other) Colored by Color Scripter cs 같은 방법을 이용하여 1의 자리와 10의자리의 합으로 정렬을 하였다.

댓글 없음:

댓글 쓰기