파이썬 enumerate, zip, reversed, sorted (루프테크닉)
파이썬 enumerate, zip, reversed, sorted (루프테크닉) — #파이썬enumerate #파이썬zip #파이썬reversed #파이썬sorted #파이썬루프테크닉 AI스쿨 msa기반 java 백...
#파이썬enumerate #파이썬zip #파이썬reversed #파이썬sorted #파이썬루프테크닉
AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다
파이썬 루프테크닉
자료구조에 대한 공부가 거의 끝이 났습니다. 이제 루프(for)안에서 딕셔너리, 시퀀스 자료구조를 어떻게 응용 할 수 있는지에 대한 내용이 남아있습니다.
이글에서 등장하는 메서드는 자료구조를 훨씬 더 잘 활용할 수 있는 방안을 제시합니다.
items()
딕셔너리 key : value 쌍을 활용하자
items() 메서드를 활용하여 딕셔너리 자료구조를 훨씬 쉽게 응용할 수 있습니다.
| dict = { 'name' : 'jword', 'age' : 15, 'isFemale': False }for k,v in dict.items(): print(k, v) |
|---|
| name jwordage 15isFemale False |
|---|
dic 딕셔너리 자료를 items()를 사용하여 key : value값을 추출하였습니다. key : value쌍이 바로 옆으로 출력됩니다.
enumerate()
시퀀스 자료형 순서를 출력하자
시퀀스 자료형은 요소들의 순서를 부여하여 순서로 접근이나, 출력, 수정이 가능했습니다. 그만큼 시퀀스에서는 순서가 중요한 역할을 한다고도 볼 수 있습니다.
enumerate() 메서드는 시퀀스의 순서와 데이터요소 쌍을 출력합니다.
| fruits = \['apple', 'banana', 'mango'\]for i, s in enumerate(fruits): print((i, s)) |
|---|
| (0, 'apple')(1, 'banana')(2, 'mango') |
|---|
()는 제가 임의로 추가한 형식입니다. 보통은 () 없이 0, 'apple'로 출력됩니다.
시퀀스 데이터는 다 가능하기 때문에 튜플 형태도 출력해보았습니다.
| tup = 'apple', 13, fruitsfor i, s in enumerate(tup): print(i, s) |
|---|
| 0 apple1 132 \['apple', 'banana', 'mango'\] |
|---|
역시나 잘 출력되는것을 확인할 수 있었습니다.
마지막으로 문자열도 시퀀스기에 테스트 해보았습니다.
| for i, s in enumerate('apple'): print(i, s) |
|---|
| 0 a1 p2 p3 l4 e |
|---|
역시나 시퀀스대로 잘 분류가 되는군요!
zip()
두가지 이상 시퀀스를 활용하기
두가지 이상 시퀀스 데이터가 필요한 경우가 있습니다. 이럴때는 zip() 메서드를 사용하여, 각 시퀀스를 각각의 변수로 바을 수 있습니다.
tup1 튜플 데이터를 추가로 만들고, 위 예시에서 활용한 tup 시퀀스 데이터를 활용하여 zip()을 사용했습니다.
| tup1 = \['banana', 15, tup\]for o, t in zip(tup, tup1): |
|---|
| print(o) # o = tupapple13\['apple', 'banana', 'mango'\]print(t) # t = tup1banana15\['apple', 13, \['apple', 'banana', 'mango'\]\]print(o, t) apple banana13 15\['apple', 'banana', 'mango'\] \['apple', 13, \['apple', 'banana', 'mango'\]\] |
|---|
tup와 tup1이 각각 o와 t에 들어가면서 각 요소를 순서대로 출력합니다.
reversed()
순서를 거꾸로 만들기
reversed() 메서드를 사용하면 정방향 순서를 반대로 만들 수 있습니다. 기존의 코드를 reversed()안에 넣으면 됩니다.
| for i in reversed(range(10)): |
|---|
| 9876543210 |
|---|
enumerate() 메서드도 적용되는지 해봤는데, 오류가 나왔습니다.
| for i, s in reversed(enumerate(fruits)): print(i, s) |
|---|
| TypeError: 'enumerate' object is not reversible |
|---|
역으로 만들수 없다고 합니다. (머쓱)
sorted()
정렬하기
sorted() 메서드는 추후에 메서드 공부할때 따로 다뤄볼 예정입니다. 일단 sorted() 메서드를 기본값으로 사용하면 알파벳 순서로 정렬이 가능합니다.
여기 제가 랜덤으로 생성한 과일 리스트가 있습니다. sorted()메서드를 사용하여 정렬해보겠습니다.
| fruits = \['Lychee','Pear', 'Rock melon', 'Dragonfruit', 'Avocado', 'Peach', 'Blackcurrant'\]sorted(fruits) |
|---|
| \['Avocado', 'Blackcurrant', 'Dragonfruit', 'Lychee', 'Peach', 'Pear', 'Rock melon'\] |
|---|
알파벳 순서대로 잘 정렬된것을 확인할 수 있습니다.
각 함수별 핵심 요약
- items() : 딕셔너리, key : value
- enumerate() : 시퀀스(리스트, 튜플, 문자열 등) 번호와 요소
- zip() : 두가지 이상 시퀀스
- reversed() : 기존 정방향 순서를 거꾸로
- sorted() : 기본값은 알파벳순서대로
\* 예제를 꼭 익힐것
