source

다양한 목록 지우기 방법

factcode 2022. 11. 16. 21:24
반응형

다양한 목록 지우기 방법

Python에서 목록을 지우고 싶을 때 이 두 줄 중 하나보다 더 복잡한 작업을 수행해야 하는 이유가 있습니까?

old_list = []
old_list = list()

제가 질문하는 이유는 실행 중인 코드에서 이것을 보았기 때문입니다.

del old_list[ 0:len(old_list) ]

목록을 삭제하면 동일한 목록의 다른 모든 참조에 영향을 미칩니다.

예를 들어, 이 메서드는 다른 참조에는 영향을 주지 않습니다.

>>> a = [1, 2, 3]
>>> b = a
>>> a = []
>>> print(a)
[]
>>> print(b)
[1, 2, 3]

하지만 이건 그렇다.

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]      # equivalent to   del a[0:len(a)]
>>> print(a)
[]
>>> print(b)
[]
>>> a is b
True

다음 작업도 가능합니다.

>>> a[:] = []

하고있다alist = []목록을 클리어하지 않고 빈 목록을 생성하여 변수에 바인드합니다.alist. 다른 변수 바인딩이 있는 경우 이전 목록은 계속 존재합니다.

실제로 목록을 지우려면 다음 방법 중 하나를 사용할 수 있습니다.

  1. alist.clear() # Python 3.3+, most obvious
  2. del alist[:]
  3. alist[:] = []
  4. alist *= 0 # fastest

자세한 내용은 Mutable Sequence Types 문서 페이지를 참조하십시오.

python 목록을 클리어하는 매우 간단한 방법이 있습니다.del list_name [ : ]를 사용합니다.

예를 들어 다음과 같습니다.

>>> a = [1, 2, 3]
>>> b = a
>>> del a[:]
>>> print a, b
[] []

del이 메모리를 돌려주는 반면 새 목록을 할당하면 gc running.matter가 실행되었을 때만 오래된 목록이 삭제됩니다.

이는 큰 목록에는 유용하지만 작은 목록에는 무시해도 됩니다.

편집: 알고리아스로서는 상관없습니다.

주의:

del old_list[ 0:len(old_list) ]

와 동등하다

del old_list[:]
del list[:] 

해당 리스트 변수의 값을 삭제합니다.

del list

변수 자체를 메모리에서 삭제합니다.

목록을 클리어하는 경우는 다음 두 가지가 있습니다.

  1. 이름을 사용하고 싶다old_list코드의 상세
  2. 오래된 목록을 가능한 한 빨리 수집하여 메모리를 확보하려고 합니다.

1의 경우 할당을 계속합니다.

    old_list = []    # or whatever you want it to be equal to

케이스 2의 경우del스테이트먼트는 목록 객체에 대한 참조 수를 줄입니다.이름old list포인트는 다음과 같습니다.목록 개체가 이름만 가리키는 경우old_list에서 참조 카운트는 0이 되고 오브젝트는 가비지 수집을 위해 해방됩니다.

    del old_list

목록을 지우려면 목록이 더 이상 필요하지 않습니다.이 경우 간단한 del 방식으로 목록 전체를 삭제할 수 있습니다.

a = [1, 3, 5, 6]
del a # This will entirely delete a(the list).

하지만 만약 다시 필요할 경우 다시 초기화할 수 있습니다.또는 단순히 다음 방법으로 요소를 제거할 수 있습니다.

del a[:]

정상적으로 동작하는 또 다른 솔루션은 빈 목록을 참조 빈 목록으로 작성하는 것입니다.

empt_list = []

예를 들어 리스트가 있습니다.a_list = [1,2,3]클리어 하려면 , 다음의 조작을 실시합니다.

a_list = list(empt_list)

이렇게 하면a_list같은 빈 리스트empt_list.

언급URL : https://stackoverflow.com/questions/850795/different-ways-of-clearing-lists

반응형