鱼C论坛

 找回密码
 立即注册
查看: 1178|回复: 5

[已解决]pop()用法出现错误

[复制链接]
发表于 2021-9-1 19:21:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
motorcycles = ['honda','yamaha','suzuki']
motorcycles.pop()
print(motorcycles)
print(motorcycles.pop())
print(motorcycles)


打印结果为:
['honda', 'yamaha']
yamaha
['honda']

这里面为啥第三次打印和第一次打印结果不同呢???这是咋回事,
最佳答案
2021-9-1 19:45:29
pop方法是修改原列表的,每次调用会删除最后一个元素,返回被删除的元素
  1. motorcycles = ['honda','yamaha','suzuki']
  2. motorcycles.pop()  # 运行后,motorcycles 删掉了最后那个元素,此时motorcycles = ['honda','yamaha']
  3. print(motorcycles)  # 这里会打印被删除元素后的列表
  4. print(motorcycles.pop())  # 这里是第二次删除元素,会打印第二个被删除的元素
  5. print(motorcycles)  # 这里是打印被删除两次元素后的列表,所以只剩下最后一个元素了
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-1 19:45:29 | 显示全部楼层    本楼为最佳答案   
pop方法是修改原列表的,每次调用会删除最后一个元素,返回被删除的元素
  1. motorcycles = ['honda','yamaha','suzuki']
  2. motorcycles.pop()  # 运行后,motorcycles 删掉了最后那个元素,此时motorcycles = ['honda','yamaha']
  3. print(motorcycles)  # 这里会打印被删除元素后的列表
  4. print(motorcycles.pop())  # 这里是第二次删除元素,会打印第二个被删除的元素
  5. print(motorcycles)  # 这里是打印被删除两次元素后的列表,所以只剩下最后一个元素了
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-1 19:51:58 | 显示全部楼层
因为第4行操作又经过了一次pop()函数,相当于是motorcycles = ['honda','yamaha'],求此时motorcycles.pop()的结果。如果想一样,应该重新赋值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-9-1 20:26:29 | 显示全部楼层
louxinghao 发表于 2021-9-1 19:45
pop方法是修改原列表的,每次调用会删除最后一个元素,返回被删除的元素

我看了你说的懂了,针布戳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-1 21:46:00 | 显示全部楼层
本帖最后由 505659671 于 2021-9-1 21:47 编辑

兄弟,这里面涉及到程序执行时的先后顺序问题,主要问题在这一句
  1. print(motorcycles.pop())
复制代码
执行前后发生本质的变化,这一句首先会执行
  1. motorcycles.pop()
复制代码
,再次执行
  1. print
复制代码
函数,而在执行
  1. motorcycles.pop()
复制代码
时,已经将
  1. ['honda', 'yamaha']
复制代码
中的'yamaha'从列表压出来,所以当在print时,列表里面只有'honda'。对比第一次而言,其实是多执行了一次pop操作

我是热心的伟哥,期待下次相见!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-4 16:08:50 | 显示全部楼层
505659671 发表于 2021-9-1 21:46
兄弟,这里面涉及到程序执行时的先后顺序问题,主要问题在这一句执行前后发生本质的变化,这一句首先会执行 ...

我懂了伟哥,你真牛B
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 01:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表