del, remove 및 pop on 목록의 차이
목록에서 요소를 삭제하는 세 가지 방법 사이에 차이가 있습니까?
>>> a = [1, 2, 3]
>>> a.remove(2)
>>> a
[1, 3]
>>> a = [1, 2, 3]
>>> del a[1]
>>> a
[1, 3]
>>> a = [1, 2, 3]
>>> a.pop(1)
2
>>> a
[1, 3]
목록에서 요소를 삭제하는 세 가지 방법이 미치는 영향:
remove
는 특정 인덱스가 아닌 첫 번째 일치하는 값을 삭제합니다.
>>> a = [0, 2, 3, 2]
>>> a.remove(2)
>>> a
[0, 3, 2]
del
특정 인덱스에서 항목을 삭제합니다.
>>> a = [9, 8, 7, 6]
>>> del a[1]
>>> a
[9, 7, 6]
★★★★★★★★★★★★★★★★★」pop
는 특정 인덱스에서 항목을 삭제하고 반환합니다.
>>> a = [4, 3, 5]
>>> a.pop(1)
3
>>> a
[4, 5]
에러 모드도 다릅니다.
>>> a = [4, 5, 6]
>>> a.remove(7)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> del a[7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> a.pop(7)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: pop index out of range
del
pop()
값이 필요한 할 수 반환된 값이 한 경우 인덱스로 삭제할 수 있습니다.remove()
값을 기준으로 요소를 삭제합니다.하며, """를 올립니다.ValueError
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
시i
n
이다.
del O(n - i)
pop O(n - i)
remove O(n)
해 주십시오.del
과는 다릅니다)pop
를 사용하면 슬라이싱을 할 수 있습니다 : )는 목록 슬라이싱을 위해 사용할 수 있습니다.
>>> lst = [3, 2, 2, 1]
>>> del lst[1:]
>>> lst
[3]
에 의해, 「」, 「」를 .IndexError
"CHANGE: "CHANGE:
>>> lst = [3, 2, 2, 1]
>>> del lst[10:]
>>> lst
[3, 2, 2, 1]
이미 다른 사람들이 꽤 잘 대답했습니다.이건 내 쪽이야:)
명히,는,pop
이며, 반환되는 값은 이뿐입니다.remove
이며, 대상은 이뿐입니다.del
단순한 삭제로 제한합니다.
좋은 설명들이 많이 있지만 좀 더 간단하게 하도록 노력하겠습니다.
모든 중 " " "는remove
&pop
는 postfix이고 delete는 prefix입니다.
: 처음 발생한 요소를 제거하기 위해 사용합니다remove()
.
remove(n)
> =의첫 등장 > = 의첫생생생생생생n
록에있있 있있있다다
>>> a = [0, 2, 3, 2, 1, 4, 6, 5, 7]
>>> a.remove(2) # where i = 2
>>> a
[0, 3, 2, 1, 4, 6, 5, 7]
pop()
: 요소를 제거하는 데 사용됩니다.
- 'CHANGE: 'CHANGE: 'CHANGE: 'CHANGE:
pop()
> 에서= > > 끝끝끝끝
>>> a.pop()
>>> a
[0, 3, 2, 1, 4, 6, 5]
- "CHANGE: "CHANGE:
pop(index)
> index=> 지의의
>>> a.pop(2)
>>> a
[0, 3, 1, 4, 6, 5]
경고: 전방의 위험한 방법
: 프리픽스 방식입니다del()
.
의 다른 .「 」 에서는, 「 」 。와 함께[]
리고 it 。의 힘을 있습니다.하다
- 삭제
del a[index]
=> 다음 just just just just just just just just just just just just just just just just just just just just like like like like like like like like like like like like like like like like like like =>와 같이 및 할 때 합니다.pop
.
>>> del a[1]
>>> a
[0, 1, 4, 6, 5]
- 내의 합니다.
[index_1:index_N]
:
del a[0:3]
=> 범위에 여러 개의 값이 있습니다.
>>> del a[0:3]
>>> a
[6, 5]
- 마지막으로 전체 목록을 한 번에 삭제합니다.
del (a)
=> 상기와 같이.
>>> del (a)
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
이것으로 혼란이 명확해졌으면 좋겠다.
팝
인덱스를 취득합니다(지정된 경우, 마지막으로 취득). 해당 인덱스에서 값을 삭제하고 값을 반환합니다.
제거한다.
값을 가져오고 첫 번째 오카렌스를 제거하며 아무것도 반환하지 않습니다.
삭제하다
인덱스를 가져와서 해당 인덱스에서 값을 제거하고 아무것도 반환하지 않습니다.
다른 데이터 구조상의 조작/기능은 특정 액션에 대해 정의됩니다.예를 들어 요소 삭제, 삭제, 팝업 및 제거(세트를 고려하는 경우 다른 작업 추가 - 폐기) 다른 혼란스러운 경우 추가 중에 있습니다.삽입/추가.데모의 경우 Let Us Implement deque. deque는 하이브리드 선형 데이터 구조이며, 여기서 요소를 추가하거나 양 끝에서 요소를 제거할 수 있습니다.(후면 및 전면 끝)
class Deque(object):
def __init__(self):
self.items=[]
def addFront(self,item):
return self.items.insert(0,item)
def addRear(self,item):
return self.items.append(item)
def deleteFront(self):
return self.items.pop(0)
def deleteRear(self):
return self.items.pop()
def returnAll(self):
return self.items[:]
여기에서는, 조작을 참조해 주세요.
def deleteFront(self):
return self.items.pop(0)
def deleteRear(self):
return self.items.pop()
작전은 뭔가 돌려줘야 해그래서 팝 - 색인 있음과 없음.값을 반환하지 않으면 del self.items[0]
인덱스가 아닌 값으로 삭제:
삭제:
list_ez=[1,2,3,4,5,6,7,8] for i in list_ez: if i%2==0: list_ez.remove(i) print list_ez
반환 [1,3,5,7]
세트의 경우를 생각해 봅시다.
set_ez=set_ez=set(range(10))
set_ez.remove(11)
# Gives Key Value Error.
##KeyError: 11
set_ez.discard(11)
# Does Not return any errors.
자세한 답변은 다음과 같습니다.
del은 모든 클래스 오브젝트에 사용할 수 있지만 pop 및 remove는 특정 클래스로 한정됩니다.
★★★의 del
여기 몇 가지 예가 있어요.
>>> a = 5
>>> b = "this is string"
>>> c = 1.432
>>> d = myClass()
>>> del c
>>> del a, b, d # we can use comma separated objects
덮어쓸 수 있습니다.__del__
메서드를 지정합니다.
목록과 함께 특정 용도
>>> a = [1, 4, 2, 4, 12, 3, 0]
>>> del a[4]
>>> a
[1, 4, 2, 4, 3, 0]
>>> del a[1: 3] # we can also use slicing for deleting range of indices
>>> a
[1, 4, 3, 0]
★★★의 pop
pop
하여 해당 합니다.
★★★★★★★★★★★★★★★와 달리del
,pop
합니다.
>>> a = [1, 5, 3, 4, 7, 8]
>>> a.pop(3) # Will return the value at index 3
4
>>> a
[1, 5, 3, 7, 8]
★★★의 remove
remove는 파라미터 값을 가져와서 목록에서 해당 값을 제거합니다.
여러 개의 값이 있는 경우 첫 번째 항목이 제거됩니다.
Note
: ValueError를
>>> a = [1, 5, 3, 4, 2, 7, 5]
>>> a.remove(5) # removes first occurence of 5
>>> a
[1, 3, 4, 2, 7, 5]
>>> a.remove(5)
>>> a
[1, 3, 4, 2, 7]
이 답변이 도움이 되기를 바랍니다.
목록에서 제거 작업에는 제거할 값이 지정됩니다.이 값은 목록을 검색하여 해당 값을 가진 항목을 찾은 후 가장 먼저 일치하는 항목을 삭제합니다.일치하는 항목이 없는 경우 오류가 발생하며 ValueError가 발생합니다.
>>> x = [1, 0, 0, 0, 3, 4, 5]
>>> x.remove(4)
>>> x
[1, 0, 0, 0, 3, 5]
>>> del x[7]
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
del x[7]
IndexError: list assignment index out of range
del 문을 사용하여 목록 전체를 삭제할 수 있습니다.특정 목록 항목을 인수로 지정하면(리스트의 8번째 항목을 구체적으로 참조하기 위해 listname[7] 등), 해당 항목은 삭제됩니다.목록에서 "슬라이스"를 삭제할 수도 있습니다.범위를 벗어난 인덱스가 있는 경우 IndexError가 발생합니다.
>>> x = [1, 2, 3, 4]
>>> del x[3]
>>> x
[1, 2, 3]
>>> del x[4]
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
del x[4]
IndexError: list assignment index out of range
일반적으로 팝은 목록을 스택으로 사용할 때 목록에서 마지막 항목을 삭제하는 것입니다.del과 달리 pop은 목록에서 튀어나온 값을 반환합니다.선택적으로 목록의 끝 이외의 팝 및 팝에 인덱스 값을 지정할 수 있습니다(예: listname.pop(0)은 목록에서 첫 번째 항목을 삭제하고 그 결과 해당 첫 번째 항목을 반환합니다).이를 사용하여 목록을 대기열처럼 동작시킬 수 있지만 pop(0)보다 더 나은 성능을 가진 대기열 작업을 제공할 수 있는 라이브러리 루틴이 있습니다.범위를 벗어난 인덱스가 있는 경우 IndexError가 발생합니다.
>>> x = [1, 2, 3]
>>> x.pop(2)
3
>>> x
[1, 2]
>>> x.pop(4)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
x.pop(4)
IndexError: pop index out of range
자세한 내용은 collections.deque를 참조하십시오.
Remove는 기본적으로 값에 대해 작동합니다.인덱스에서 작업 삭제 및 팝
Remove는 기본적으로 첫 번째 일치하는 값을 제거합니다.삭제는 특정 인덱스에서 항목을 삭제합니다. 기본적으로 Pop은 인덱스를 가져와서 해당 인덱스의 값을 반환합니다.다음에 목록을 인쇄할 때 값이 표시되지 않습니다.
pop 및 delete를 실행하는 동안 둘 다 인덱스를 사용하여 위의 설명에서 설명한 요소를 삭제합니다.중요한 차이점은 시간이 복잡하다는 것입니다.인덱스가 없는 pop()의 시간 복잡도는 O(1)이지만 마지막 요소를 삭제하는 경우와 다릅니다.
항상 마지막 요소를 삭제하는 경우 항상 delete()보다 pop()을 사용하는 것이 좋습니다.시간의 복잡성에 대한 자세한 내용은 https://www.ics.uci.edu/ ~pattis/ICS-33/lextures/complexitypython.txt 를 참조해 주세요.
제거를 사용하여 인덱스별 값을 제거할 수도 있습니다.
n = [1, 3, 5]
n.remove(n[1])
n은 [1, 5]를 참조합니다.
언급URL : https://stackoverflow.com/questions/11520492/difference-between-del-remove-and-pop-on-lists
'programing' 카테고리의 다른 글
Vue Router, 새로 고침 시 공백 페이지가 표시됨 (0) | 2023.01.24 |
---|---|
가장 좋은 PHP 입력 삭제 기능은 무엇입니까? (0) | 2023.01.24 |
Node.js에서 'use strict' 문은 어떻게 해석됩니까? (0) | 2023.01.24 |
'this'가 있는 함수의 함수에 액세스하는 방법 (0) | 2023.01.24 |
MariaDB: 서브쿼리가 실패한 group_concat (0) | 2023.01.24 |