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의자리의 합으로 정렬을 하였다.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기