반응형
파이썬에서는 목록에서 항목을 제거하는 방법을 알고 있습니다.
item_list = ['item', 5, 'foo', 3.14, True]
item_list.remove('item')
item_list.remove(5)
위의 코드는 item_list에서 값 5와 'item'을 제거합니다. 하지만 제거 할 내용이 많으면 여러 줄을 써야합니다.
item_list.remove("something_to_remove")
제거중인 항목의 색인을 알고 있으면 다음을 사용합니다.
del item_list[x]
여기서 x는 제거하려는 항목의 인덱스입니다.
제거하려는 모든 숫자의 색인을 알고 있다면 색인에서 항목을 삭제
하는 일종의 루프를 사용합니다.
하지만 제거하려는 항목의 색인을 모르는 경우 어떻게해야합니까?
item_list.remove ( 'item', 'foo')
를 시도했지만 remove
가 하나의 인수 만 취한다는 오류가 발생했습니다.
단일 명령문의 목록에서 여러 항목을 제거하는 방법이 있습니까?
추신 del
과 remove
를 사용했습니다. 누군가이 둘의 차이점을 설명 할 수 있습니까, 아니면 동일합니까?
감사
해결 방법
Python에서는 새 개체를 만드는 것이 기존 개체를 수정하는 것보다 낫습니다.
item_list = ['item', 5, 'foo', 3.14, True]
item_list = [e for e in item_list if e not in ('item', 5)]
다음과 같습니다.
item_list = ['item', 5, 'foo', 3.14, True]
new_list = []
for e in item_list:
if e not in ('item', 5):
new_list.append(e)
item_list = new_list
필터링 된 값의 큰 목록 (여기서는 ( 'item', 5)
는 작은 요소 집합)의 경우 set
를 사용하면 성능이 향상 될 수 있습니다. , in
작업이 O (1)에 있으므로 :
item_list = [e for e in item_list if e not in {'item', 5}]
unwanted = {'item', 5}
item_list = [e for e in item_list if e not in unwanted]
참조 페이지 https://stackoverflow.com/questions/36268749
반응형
'파이썬' 카테고리의 다른 글
파이썬 opencv python에서 이미지 주위에 테두리를 추가하는 방법 (0) | 2020.11.06 |
---|---|
파이썬 numpy를 사용하여 내림차순으로 정렬하는 방법은 무엇입니까? (0) | 2020.11.06 |
파이썬 bash 터미널에서 파일을 실행할 때 Matplotlib 플롯이 표시되지 않습니다. (0) | 2020.11.06 |
파이썬 pandas-열 값을 기준으로 거의 중복 된 행 병합 (0) | 2020.11.06 |
파이썬 Python : 어떻게 정확히 문자열을 가져 와서 분할하고 뒤집고 다시 결합 할 수 있습니까? (0) | 2020.11.06 |
댓글