티스토리
리스트에서 특정 값을 제외
Python에서 리스트에서 특정 원소를 제거하는 방법은 여러 가지가 있습니다. 다음은 몇 가지 일반적인 방법입니다.
1. 코드리뷰
remove() 메서드 사용:
remove() 메소드는 리스트에서 특정 값을 가진 첫 번째 원소만 삭제합니다. 같은 값을 가진 여러 원소를 모두 삭제하려면 반복문을 사용해야 합니다.
my_list = [1, 2, 3, 4, 5] my_list.remove(3)
print(my_list)
위의 코드는 리스트 my_list에서 값이 3인 원소를 제거합니다. remove() 메서드는 해당 값을 가진 첫 번째 원소만 제거합니다. 만약 리스트에 해당 값이 없는 경우 ValueError가 발생할 수 있으므로 주의해야 합니다.
# 리스트에서 "apple"을 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
fruits.remove("apple")
print(fruits) # ['banana', 'orange', 'apple']
인덱스를 사용하여 del 키워드로 제거:
del 키워드를 사용하여 리스트의 원소를 삭제하면 리스트의 길이가 변합니다. 따라서 반복문을 사용하여 리스트를 순회할 때 주의해야 합니다.
my_list = [1, 2, 3, 4, 5]
del my_list[2]
print(my_list)
위의 코드는 리스트 my_list에서 인덱스가 2인 원소를 제거합니다. del 키워드를 사용하여 해당 인덱스의 원소를 삭제할 수 있습니다.
# 리스트에서 두 번째 원소를 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
del fruits[1]
print(fruits) # ['apple', 'orange', 'apple']
리스트 컴프리헨션을 사용하여 특정 원소를 제외한 새로운 리스트 생성:
my_list = [1, 2, 3, 4, 5] new_list = [x for x in my_list if x != 3] print(new_list)
위의 코드는 리스트 my_list에서 값이 3인 원소를 제외한 새로운 리스트 new_list를 생성합니다. 리스트 컴프리헨션을 사용하여 조건문을 적용하여 원하는 원소를 제거하고 새로운 리스트를 생성할 수 있습니다.
pop() 메서드를 사용하여 인덱스로 제거 및 반환:
my_list = [1, 2, 3, 4, 5] removed_element = my_list.pop(2) print(my_list)
print(removed_element)
위의 코드는 리스트 my_list에서 인덱스가 2인 원소를 제거하고 해당 원소를 반환합니다. pop() 메서드는 제거된 원소를 반환하기 때문에 필요한 경우 해당 값을 저장할 수 있습니다.
# 리스트에서 마지막 원소를 제거하고 반환합니다.
fruits = ["apple", "banana", "orange", "apple"]
removed_fruit = fruits.pop()
print(fruits) # ['apple', 'banana', 'orange']
print(removed_fruit) # 'apple'
리스트의 특정원소 제거 예시 :
LIST = [ 1, 2, 3, 4, 5, 6, 7, 7, 7, 7] # 리스트 del_list = {1,7} #
result = [ i for i in LIST if i not in del_list]
print(result)
슬라이싱 사용 :
슬라이싱을 사용하여 특정 값을 가진 원소를 제외한 새로운 리스트를 만들 수 있습니다. 다음과 같이 사용합니다.
# "apple"을 제외한 새로운 리스트를 만듭니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = fruits[:] # 리스트 복사
new_fruits.remove("apple")
print(new_fruits) # ['banana', 'orange']
filter() 함수 사용 :
filter() 함수를 사용하여 특정 조건을 만족하는 원소만 포함하는 새로운 리스트를 만들 수 있습니다. 다음과 같이 사용합니다.
# "apple"을 제외한 새로운 리스트를 만듭니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = list(filter(lambda x: x != "apple", fruits))
print(new_fruits) # ['banana', 'orange']
itertools.dropwhile() 함수 사용 :
itertools.dropwhile() 함수를 사용하여 특정 조건을 만족하는 원소가 나올 때까지 리스트의 처음부터 원소를 제거하고 나머지 리스트를 반환합니다. 다음과 같이 사용합니다.
from itertools import dropwhile
# 리스트에서 "apple"을 모두 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = list(dropwhile(lambda x: x == "apple", fruits))
print(new_fruits) # ['banana', 'orange']
itertools.takewhile() 함수 사용
from itertools import takewhile
# "apple"을 제외한 새로운 리스트를 만듭니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = list(takewhile(lambda x: x != "apple", fruits))
print(new_fruits) # ['banana', 'orange']
이러한 방법을 사용하여 Python에서 리스트에서 특정 원소를 제거할 수 있습니다. 선택한 방법은 원소를 제거하는 조건과 사용 사례에 따라 달라질 수 있습니다.
2. 코드리뷰 - 파이썬 리스트에서 중복 제거 예제
1. set() 자료형 이용 :
set() 자료형은 중복된 값을 허용하지 않기 때문에 리스트를 set()으로 변환하면 중복된 값이 제거됩니다. 다음과 같이 사용합니다.
# 리스트에서 중복된 값을 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = set(fruits)
print(new_fruits) # {'apple', 'banana', 'orange'}
2. collections.Counter() 이용 :
collections.Counter() 객체는 리스트의 각 원소가 등장하는 횟수를 기록합니다. 이를 이용하여 중복된 값을 제거할 수 있습니다. 다음과 같이 사용합니다.
from collections import Counter
# 리스트에서 중복된 값을 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
counts = Counter(fruits)
new_fruits = [fruit for fruit, count in counts.items() if count == 1]
print(new_fruits) # ['banana', 'orange']
3. 반복문 이용 :
반복문을 사용하여 리스트를 순회하며 중복된 값을 제거할 수 있습니다. 다음과 같이 사용합니다.
# 리스트에서 중복된 값을 제거합니다.
fruits = ["apple", "banana", "orange", "apple"]
new_fruits = []
for fruit in fruits:
if fruit not in new_fruits:
new_fruits.append(fruit)
print(new_fruits) # ['banana', 'orange']
4. numpy.unique() 이용 :
NumPy 라이브러리를 사용하면 numpy.unique() 함수를 사용하여 리스트에서 중복된 값을 제거할 수 있습니다. 다음과 같이 사용합니다.
import numpy as np
# 리스트에서 중복된 값을 제거합니다.
fruits = np.array(["apple", "banana", "orange", "apple"])
new_fruits = np.unique(fruits)
print(new_fruits) # ['apple' 'banana' 'orange']
마무리
- 이번 포스팅은 리스트 타입(list type)의 원소 삭제에 대해 알아봤습니다.
궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.
'PYTHON 파이썬 > 문법(Syntax)' 카테고리의 다른 글
[Python/파이썬] 리스트/LIST들 중에서 중복된 값 찾기 (0) | 2023.08.05 |
---|---|
[파이썬초보] python glob 파일(file)처리 (0) | 2023.06.20 |
input() (0) | 2023.06.18 |
조건문(Conditional Statement) (0) | 2023.06.17 |
변수(Variables) (0) | 2023.06.17 |