복붙노트

[PYTHON] 파이썬에서리스트를 비우는 방법?

PYTHON

파이썬에서리스트를 비우는 방법?

이런 식으로 목록을 비우는 것이 "더러운"것처럼 보입니다.

while len(alist) > 0 : alist.pop()

그렇게하기위한 명확한 방법이 있습니까?

해결법

  1. ==============================

    1.실제로 목록에서 내용을 제거하지만 이전 레이블을 새로운 빈 목록으로 대체하지는 않습니다.

    실제로 목록에서 내용을 제거하지만 이전 레이블을 새로운 빈 목록으로 대체하지는 않습니다.

    del lst[:]
    

    다음은 그 예입니다.

    lst1 = [1, 2, 3]
    lst2 = lst1
    del lst1[:]
    print(lst2)
    

    완성을 위해 슬라이스 지정은 동일한 효과를냅니다.

    lst[:] = []
    

    또한 파트를 동시에 교체하면서 목록의 일부를 축소하는 데 사용할 수도 있습니다 (단, 이는 문제의 범위를 벗어납니다).

    lst = []을하는 것은 목록을 비우지 않고 단지 새로운 객체를 생성하여 변수 lst에 바인드하지만 이전 목록은 여전히 ​​같은 요소를 가지며 다른 변수 바인딩이 있다면 효과가 분명해진다는 점에 유의하십시오.

  2. ==============================

    2.Python 3.3 이상을 사용하고 있다면, dict, set, deque 및 다른 변경 가능한 컨테이너 유형의 clear ()와 병렬 인 list의 clear () 메소드를 사용할 수 있습니다.

    Python 3.3 이상을 사용하고 있다면, dict, set, deque 및 다른 변경 가능한 컨테이너 유형의 clear ()와 병렬 인 list의 clear () 메소드를 사용할 수 있습니다.

    alist.clear()  # removes all items from alist (equivalent to del alist[:])
    

    연결된 페이지마다 alist * = 0을 사용하여 동일한 결과를 얻을 수도 있습니다.

  3. ==============================

    3.너는 시도 할 수 있었다 :

    너는 시도 할 수 있었다 :

    alist[:] = []
    

    즉, 목록 [] ([0])의 목록에서 스플 라이스 (시작부터 끝까지의 모든 인덱스)

    [:]는 슬라이스 연산자입니다. 자세한 내용은이 질문을 참조하십시오.

  4. ==============================

    4.python 2.5.2에서는 del l [:]이 1.1 [us]만큼 l [:] = []보다 약간 느립니다.

    python 2.5.2에서는 del l [:]이 1.1 [us]만큼 l [:] = []보다 약간 느립니다.

    $ python -mtimeit "l=list(range(1000))" "b=l[:];del b[:]"
    10000 loops, best of 3: 29.8 usec per loop
    $ python -mtimeit "l=list(range(1000))" "b=l[:];b[:] = []"
    10000 loops, best of 3: 28.7 usec per loop
    $ python -V
    Python 2.5.2
    
  5. ==============================

    5.

    lst *= 0
    

    ~와 같은 효과가있다.

    lst[:] = []
    

    좀 더 간단하고 기억하기 쉽습니다. 그 외에는 말할 것도별로 없다.

    효율성은 거의 같다.

  6. ==============================

    6.

    list = []
    

    목록을 빈 목록으로 재설정합니다.

    일반적으로 목록 객체의 생성자 인 list와 같이 예약 된 함수 이름을 음영 처리해서는 안됩니다. 예를 들어 lst 또는 list_를 대신 사용할 수 있습니다.

  7. ==============================

    7.상황에 따라 사용할 수있는 또 다른 간단한 코드는 다음과 같습니다.

    상황에 따라 사용할 수있는 또 다른 간단한 코드는 다음과 같습니다.

    index=len(list)-1
    
    while index>=0:
        del list[index]
        index-=1
    

    목록의 길이에서 색인을 시작하고 역순으로 0에서 색인으로 이동해야합니다. 그러면 목록의 길이와 동일한 색인으로 끝나기 때문에 앞으로 반으로 줄일 수 있습니다.

    또한, while 행에 "크거나 같음"기호가 있는지 확인하십시오. 이것을 생략하면 목록 [0]이 남게됩니다.

  8. from https://stackoverflow.com/questions/1400608/how-to-empty-a-list-in-python by cc-by-sa and MIT license