Python/45가지 파이썬 기초문법 예제

파이썬 (6) - 시퀀스 타입 조회(Sequence Item Selection)

monstro 2025. 3. 11. 15:48
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
반응형