Python - 리스트 필터링, 3가지 방법

리스트의 요소들 중에, 특정 조건을 만족하지 못하는 요소들을 필터링 또는 제거하는 방법을 소개합니다.

1. List comprehension을 이용한 방법

List comprehension을 이용하여 아래와 같이 리스트를 필터링할 수 있습니다.

아래 코드는 리스트에서 0보다 큰 요소들만 새로운 리스트에 저장합니다.

my_list = [-2, -1, 0, 1, 2]

filtered = [e for e in my_list if e >= 0]
print(filtered)

Output:

[0, 1, 2]

2. filter()를 이용한 방법

filter(lambda, list)는 리스트의 요소들 중에 lambda의 조건에 충족하는 요소들만 iterator로 리턴합니다. 따라서, 리스트로 만들고 싶다면 list(iterator)와 같은 코드로 리스트를 생성해야 합니다.

my_list = [-2, -1, 0, 1, 2]

filtered = filter(lambda e: e >= 0, my_list)
print(filtered)

new_list = list(filtered)
print("new list:", new_list)

Output:

<filter object at 0x7f0ec90903a0>
new list: [0, 1, 2]

3. for문을 이용한 방법

가장 단순하게 반복문으로 리스트의 모든 요소를 순회하면서 if문으로 필터링을 할 수 있습니다.

my_list = [-2, -1, 0, 1, 2]

filtered = []
for e in my_list:
    if e >= 0:
        filtered.append(e)

print(filtered)

Output:

[0, 1, 2]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha