pop()用法出现错误
motorcycles = ['honda','yamaha','suzuki']motorcycles.pop()
print(motorcycles)
print(motorcycles.pop())
print(motorcycles)
打印结果为:
['honda', 'yamaha']
yamaha
['honda']
这里面为啥第三次打印和第一次打印结果不同呢???这是咋回事, pop方法是修改原列表的,每次调用会删除最后一个元素,返回被删除的元素
motorcycles = ['honda','yamaha','suzuki']
motorcycles.pop()# 运行后,motorcycles 删掉了最后那个元素,此时motorcycles = ['honda','yamaha']
print(motorcycles)# 这里会打印被删除元素后的列表
print(motorcycles.pop())# 这里是第二次删除元素,会打印第二个被删除的元素
print(motorcycles)# 这里是打印被删除两次元素后的列表,所以只剩下最后一个元素了 因为第4行操作又经过了一次pop()函数,相当于是motorcycles = ['honda','yamaha'],求此时motorcycles.pop()的结果。如果想一样,应该重新赋值。 louxinghao 发表于 2021-9-1 19:45
pop方法是修改原列表的,每次调用会删除最后一个元素,返回被删除的元素
我看了你说的懂了,针布戳 本帖最后由 505659671 于 2021-9-1 21:47 编辑
兄弟,这里面涉及到程序执行时的先后顺序问题,主要问题在这一句print(motorcycles.pop())执行前后发生本质的变化,这一句首先会执行motorcycles.pop(),再次执行print函数,而在执行motorcycles.pop()时,已经将['honda', 'yamaha']中的'yamaha'从列表压出来,所以当在print时,列表里面只有'honda'。对比第一次而言,其实是多执行了一次pop操作
我是热心的伟哥,期待下次相见! 505659671 发表于 2021-9-1 21:46
兄弟,这里面涉及到程序执行时的先后顺序问题,主要问题在这一句执行前后发生本质的变化,这一句首先会执行 ...
我懂了伟哥,你真牛B
页:
[1]