python pop
介绍 (Introduction)
Today we’ll be going the Python list pop() method. We generally have various built-in methods to remove or delete any element from a list in Python. We have del
, remove()
, as well as the pop()
method to accomplish the task. But each one of them has their own differences. Let’s find out how to use the pop() method and what are the benefits of using this method.
今天,我们将使用Python列表pop()方法。 通常,我们有各种内置方法可以从Python中的列表中删除或删除任何元素。 我们有del
, remove()
和pop()
方法来完成任务。 但是他们每个人都有自己的差异。 让我们找出如何使用pop()方法以及使用此方法有什么好处。
Python List pop()方法的工作 (Working of Python List pop() Method)
Basically, the pop()
method in Python pops out the last item in a list when no parameter is passed. When passed with some index, the method pops the element corresponding to the index.
基本上,当不传递任何参数时,Python中的pop()
方法会弹出列表中的最后一项。 与某些索引一起传递时,该方法将弹出与该索引对应的元素。
Syntax,
句法,
#pop() method syntax in Python
pop(index)
- When an index is passed, the method removes the element at the index, as well as returns the same, 传递索引后 ,该方法将删除索引处的元素,并返回该元素,
- When nothing is passed, the method removes the last element and returns it where the function was previously called. 如果没有传递任何内容 ,则该方法将删除最后一个元素,并将其返回到先前调用该函数的位置。
使用Python清单pop() (Using the Python List pop())
Take a look at the example code below, it illustrates the use of the built-in pop()
method in python.
看一下下面的示例代码,它说明了python中内置pop()
方法的用法。
list1=[0,1,2,3,4,5,6,7,8,9,10]
#pop last element
print("pop() returns :",list1.pop(),"; currently list=",list1)
#pop element at index 0
print("pop(0) returns :",list1.pop(0),"; currently list=",list1)
#pop element at index 1
print("pop(1) returns :",list1.pop(1),"; currently list=",list1)
#pop element at index 2
print("pop(2) returns :",list1.pop(2),"; currently list=",list1)
#pop element at index 3
print("pop(3) returns :",list1.pop(3),"; currently list=",list1)
#pop element at index 4
print("pop(4) returns :",list1.pop(4),"; currently list=",list1)
Output:
输出:
- At first, we initialize a list, list1 as [0,1,2,3,4,5,6,7,8,9,10]. On this list, we perform the corresponding pop operation by passing distinct indices 首先,我们将list1初始化为[0,1,2,3,4,5,6,7,8,9,10]。 在此列表上,我们通过传递不同的索引来执行相应的pop操作
- pop() – As stated earlier, by default pop() returns and removes the last element from a list. In our case, the last element was 10, which gets popped consecutively pop()–如前所述,默认情况下pop()返回并从列表中删除最后一个元素。 在我们的例子中,最后一个元素是10,它会连续弹出
- pop(0) – This pops the element in the list1, at the 0th position, which is 0 in our case pop(0)–弹出list1中位于第0个位置的元素,在本例中为0
- Similarly, all the operations pop(1), pop(2), pop(3), and pop(4) return the items at their respective indices. Which are 2 4 6 and 8 as we continue to pop elements out of the list. 类似地,所有操作pop(1),pop(2),pop(3)和pop(4)都会在其各自的索引处返回项目。 当我们继续将元素从列表中弹出时,它们是2 4 6和8。
使用Python清单pop()方法时发生错误 (Errors while using Python List pop() Method)
1.使用Python pop()的IndexError (1. IndexError with Python pop())
While using the Python list pop() method, we encounter an IndexError if the index passed to the method is greater than the list length.
在使用Python列表pop()方法时,如果传递给该方法的索引大于列表长度,则会遇到IndexError 。
This Error occurs basically when the index provided it out of the list’s range. Let us look at a small example of this:
当索引提供的错误超出列表的范围时,基本上会发生此错误。 让我们看一个小例子:
list1=["John","Charles","Alan","David"]
#when index passed is greater than list length
print(list1.pop(10))
Output:
输出 :
Traceback (most recent call last):
File "C:/Users/sneha/Desktop/test.py", line 4, in <module>
print(list1.pop(10))
IndexError: pop index out of range
Process finished with exit code 1
In this example, it is clear that the index provided to the pop()
method, 10 is larger than the list’s length(4). Hence, we get the IndexError.
在此示例中,很明显提供给pop()
方法的索引10大于列表的length( 4 )。 因此,我们得到IndexError 。
2.列表为空时出错 (2.Error when the list is empty)
Similar to the previous section, when we try to perform the Python List pop() method on an empty list, we face the same IndexError. For example:
与上一节类似,当我们尝试在一个空列表上执行Python List pop()方法时,我们面临着相同的IndexError 。 例如:
l1=[]
#for empty lists
print(l1.pop())
Output:
输出 :
Traceback (most recent call last):
File "C:/Users/sneha/Desktop/test.py", line 4, in <module>
print(list1.pop())
IndexError: pop from empty list
Process finished with exit code 1
So, we can conclude that while performing Python list pop() method on an empty list, an IndexError is thrown.
因此,我们可以得出结论,在对一个空列表执行Python list pop()方法时,将抛出IndexError 。
Hence, we must check before we apply the pop() method, that the list we are dealing with is not empty. A simple length check can solve our problem.
因此,在应用pop()方法之前,必须检查要处理的列表是否为空。 简单的长度检查可以解决我们的问题。
l1=[]
#for empty lists check length before poping elements!
if len(l1)>0:
print(l1.pop())
else:
print("Empty list! cannot pop()")
Output:
输出 :
Empty list! cannot pop()
See, it’s easy. The if-else statement in Python checks whether the list is empty or not and only pops an element from the list when len(l1) > 0 i.e. when the list l1 is not empty.
看,很容易。 Python中的if-else语句检查列表是否为空,并且仅当len(l1)> 0(即列表l1不为空)时才从列表中弹出元素。
Python堆栈上的Python列表pop() (Python List pop() on a Python Stack)
As we have seen in our Python Stack Tutorial, pop()
is also a stack operation used to remove the last task or element pushed. Let us see how we can implement the Python list pop() method in a stack using lists.
正如我们在Python Stack Tutorial中所看到的, pop()
也是一个堆栈操作,用于删除最后推送的任务或元素。 让我们看看如何使用列表在堆栈中实现Python list pop()方法。
stack=[] #declare a stack
print("Pushing tasks into stack...")
for i in range(5):
stack.append(i)
print("stack=",stack)
print("Poping tasks from stack:")
#performing repetitive pop() on stack
while len(stack)>0:
print("pop()=",stack.pop(),"; Currently in Stack:",stack)
Output:
输出 :
- After declaring a stack list, we push 5 elements by continuously pushing tasks(elements) using the
append()
method. 声明堆栈列表后,我们通过使用append()
方法连续推送任务(元素)来推送5个元素。 - As soon as our stack initialization is done, we repetitively
pop()
elements until the stack is empty. 堆栈初始化完成后,我们将反复pop()
元素,直到堆栈为空 。 - Notice that while poping elements from the stack we have used the condition len(stack) > 0 using the while loop. This ensures that the pop operation is performed only while the stack is not empty. 注意,当从堆栈中弹出元素时,我们使用while循环使用了len(stack)> 0条件。 这样可确保仅在堆栈不为空时执行弹出操作。
结论 (Conclusion)
In this tutorial, we learned how the built-in pop()
method in python works, errors related to it, as well as its applications in a stack. Feel free to ask any questions about the topic in the comments.
在本教程中,我们学习了python中内置的pop()
方法如何工作,与之相关的错误以及其在堆栈中的应用。 随时在评论中询问有关该主题的任何问题。
参考资料 (References)
- https://stackoverflow.com/questions/11520492/difference-between-del-remove-and-pop-on-lists/11520540 https://stackoverflow.com/questions/11520492/difference-between-del-remove-and-pop-on-lists/11520540
- https://www.journaldev.com/16045/python-stack https://www.journaldev.com/16045/python-stack
翻译自: https://www.journaldev.com/36155/python-list-pop-method
python pop