Python의 목록에서 여러 요소 제거

Jay Prakash Gupta 2023년1월30일
  1. if...else 제어 문을 사용하여 목록에서 여러 요소 제거
  2. Python에서 목록 이해 방법을 사용하여 목록에서 여러 요소 삭제
  3. 목록 슬라이싱을 사용하여 목록에서 여러 요소 제거
  4. for 루프를 사용하여 목록에서 여러 요소 제거
Python의 목록에서 여러 요소 제거

Python 목록에서 여러 값을 제거하려면 목록의 실제 값이나 목록에서 제거할 값의 인덱스를 제거할 수 있습니다. if...else 제어 문, 목록 이해, 목록 슬라이싱 및 for 루프를 사용하여 Python의 목록에서 여러 요소를 제거할 수 있습니다.

if...else 제어 문을 사용하여 목록에서 여러 요소 제거

값이 특정 조건을 충족하는 경우 if...else 제어 문을 사용하여 Python의 목록에서 여러 값을 제거할 수 있습니다. 인덱스가 특정 조건을 만족하는 경우 요소를 제거할 수도 있습니다.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
print("Original list : ", list1)


for ele in list1:
    if (ele % 2) != 0:
        list1.remove(ele)

print("List after deleting all values which are odd : ", list1)

출력:

Original list :  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20]
List after removing all the odd values :  [2, 4, 6, 8, 10, 20]

여기에 정수 목록이 있으며 목록에서 홀수 값을 가진 요소를 제거해야 합니다. 이 경우 모든 목록 l1 요소를 반복하고 요소에 홀수 값이 있으면 remove() 메서드를 사용하여 목록에서 요소를 제거합니다.

Python에서 목록 이해 방법을 사용하여 목록에서 여러 요소 삭제

Python에서 목록 이해는 기존 목록에서 새 목록을 생성하는 프로세스를 나타냅니다. 목록 이해를 사용하여 목록에서 여러 요소를 제거할 수도 있습니다. 원래 목록에서 제거할 값을 제거하여 새 목록을 만들 수 있습니다.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
l2 = [x for x in l1 if x % 2 == 0]

print("Original list : ", l1)
print("List after deleting all the odd values present in List : ", l2)

출력:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after deleting all the odd values present in List :  [2, 4, 6, 8, 10, 20, 80]

여기에서 l1의 모든 짝수 값만 포함하는 l1 목록에서 l2 목록을 만듭니다. 즉, 목록 l1에서 모든 홀수 값을 제거하여 기존 목록 l1에서 새 목록 l2를 생성했다고 말할 수 있습니다.

목록 슬라이싱을 사용하여 목록에서 여러 요소 제거

List 슬라이싱 방법을 사용하여 목록에서 여러 요소를 제거할 수도 있습니다. 여기에 del 메소드의 목록에서 제거하려는 요소의 시작에서 마지막 인덱스까지 요소의 범위를 넣을 수 있습니다.

del 메서드에서 단일 인덱스를 사용하는 대신 목록에서 제거하려는 요소의 시작 인덱스부터 마지막 ​​인덱스까지의 값 범위를 사용합니다. 목록에서 인접한 요소를 제거합니다. 값의 인덱스는 목록의 경우 Python에서 0부터 시작한다는 점에 유의해야 합니다.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

del l1[2:5]

print("List after removing values at index 2, 3 and 4 : ", l1)

출력:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 2, 3 and 4 :  [1, 2, 6, 7, 8, 9, 10, 20, 80, 99]

del 방법을 사용하여 l1 목록에서 2, 34 인덱스의 값을 제거합니다.

여기서 주목해야 할 한 가지 중요한 점은 첫 번째 인덱스 2가 포함된다는 것입니다. 즉 3 목록의 2 인덱스에 있는 요소는 제거되고 마지막 인덱스는 목록의 5 인덱스에 있는 요소를 의미하는 배타적 값입니다. 6은(는) 제거되지 않습니다.

for 루프를 사용하여 목록에서 여러 요소 제거

for 루프를 사용하여 목록에서 여러 요소를 제거할 수도 있습니다.

이 방법을 적용하려면 목록에서 삭제하려는 요소의 인덱스를 저장해야 합니다. 그러나 요소를 임의로 제거하면 인덱스 값이 변경됩니다. 우리의 현명한 전략은 목록에서 위치가 더 큰 요소를 삭제하는 것입니다. 따라서 다른 인덱스의 요소 값은 변경되지 않습니다. 이제 목록을 내림차순으로 정렬하여 더 높은 인덱스의 요소를 먼저 삭제합니다. 이 접근 방식에 대한 코드는 아래에 나와 있습니다.

l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
print("Original list : ", l1)

indexes_to_be_removed = [0, 2, 5]

for idx in sorted(indexes_to_be_removed, reverse=True):
    del l1[idx]

print("List after removing values at index 0, 2 and 5: ", l1)

출력:

Original List :  [2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 80, 99]
List after removing values at index 0, 2 and 5:  [3, 5, 6, 8, 9, 10, 20, 80, 99]

del 방법을 사용하여 l1 목록에서 0, 25 인덱스의 값을 제거합니다.

관련 문장 - Python List