728x90
반응형
자료들이 저장되는 자료구조 중에서
자료들이 순차적으로 저장되는 구조를 시퀀스 타입 자료구조라고 한다
이번에는 시퀀스 타입 자료 구조를 순회(=조회)하는 방법을 알아보도록 한다
하나의 리스트가 있다
x = ["grapes", "mango", "orange", "peach", "apple", "lime", "banana", "cherry", "tomato", "kiwi", "blueberry", "watermelon"]
해당 자료구조에서 apple과 kiwi를 반한하되 대문자로 반환하는 경우 어떻게 코드를 구성할 수 있을까?
1) for문을 통한 순회
ex1 = []
for i in x:
if i == "apple" or i == "kiwi":
ex1.append(i.upper())
print(ex1)
가장 일반적인 방법인 for문을 이용한 순회를 사용할 수 있다
for문을 통해 x를 순회하면서 저장된 자료를 비교하여 ex1에 대문자화하여 추가한다
실행 결과는 다음과 같다

2) map과 lambda
ex2 = list(map(lambda b : b.upper(), filter(lambda a: a == 'apple' or a == 'kiwi', x)))
print(ex2)
일시적으로 사용가능한 함수 객체인 lamda를 사용한다
추가적으로 filter로 넣어준 iterator를 사용하면서 함수를 적용하는 map을 같이 사용한다
위의 로직에서는
우선 filter의 인자로 넣어진 lamda가 동작한다
따라서 x에서 apple과 kiwi를 가져와서 하나의 자료구조를 만든다
만들어진 자료구조를 iterator로 반복하면서 lambda를 적용하여 대문자화한다
최종적으로 만들어진 자료구조를 list로 캐스팅한 뒤 사용한다
최종 실행 결과는 다음과 같다

3) 리스트 컴프리헨션
리스트 컴프리헨션은 리스트의 안에서 로직을 수행하게 해주는 기능이다
리스트를 생성하는데 사용하는 연산자인 대괄호 쌍안([ , ])에 로직을 넣어 사용한다
ex3 = [a.upper() for a in x if a == 'apple' or a == 'kiwi']
print(ex3)
기본적인 로직은 1의 예제와 동일하다
다만 리스트의 안에서 사용했다는 차이점만이 존재한다
최종 실행 결과는 다음과 같다

728x90
반응형
'Python > 45가지 파이썬 기초문법 예제' 카테고리의 다른 글
| 파이썬 (8) - Range 함수 활용 (2) (0) | 2025.03.24 |
|---|---|
| 파이썬 (7) - Range 함수 활용 (1) (0) | 2025.03.14 |
| 파이썬 (5) - 시퀀스 타입 슬라이싱(Sequence Type Slicing) (0) | 2025.03.06 |
| 파이썬 (4) - 시퀀스 타입 인덱싱(Sequence Type Indexing) (0) | 2025.03.04 |
| 파이썬 (3) - 에러 핸들링(TypeError Handling) (0) | 2025.02.27 |