목록에서 특정 항목 잘라 내기

Nov 14 2020

하나의 목록이 있고 모든 요소를 ​​인쇄하고 싶지만 특정 항목은 건너 뛰고 싶습니다.

a = [1,2,3,4,5,6,7,8,9]

인쇄하고 싶습니다 :

1,3,4,5,6,7,8,9 

(일반 for 루프와 같은 열에서)

이것이 가능한가?

답변

2 MarianD Nov 14 2020 at 13:35
  1. 위치 (색인) 로 건너 뛸 요소를 지정하는 경우 :

    for position, element in enumerate(a):
        if position != specified_position:
            print(element)
    
  2. 으로 건너 뛸 요소를 지정하는 경우 :

    for element in a:
        if element != specified_value:
            print(element)
    
1 Aplet123 Nov 14 2020 at 13:16

양쪽에서 슬라이스하고 연결하십시오.

def skip_over(lst, i):
    return lst[:i] + lst[i + 1:]

skip_over([1, 2, 3, 4, 5], 1) # [1, 3, 4, 5]

값의 모든 항목을 건너 뛰려면 목록 이해를 사용하여 필터링하십시오.

def skip_all(lst, v):
    return [x for x in lst if x != v]

skip_all([1, 2, 3, 2, 4, 5], 2) # [1, 3, 4, 5]

값의 첫 번째 항목을 건너 뛰려면 다음을 사용 index하여 색인을 가져 오십시오.

def skip_first(lst, v):
    try:
        i = lst.index(v)
    except ValueError:
        # value not in list so return whole thing
        return lst
    return lst[:i] + lst[i + 1:]

skip_first([1, 2, 3, 2, 4, 5], 2) # [1, 3, 2, 4, 5]