鱼C论坛

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

关于字典内置方法popitem()

[复制链接]
发表于 2017-7-23 17:46:46 | 显示全部楼层 |阅读模式

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

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

x
视频里说popitem()是随机移除一个项,但是我试了一下是移除最末尾的项
  1. >>> dict1
  2. {0: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞'}
  3. >>> dict1.popitem()
  4. (7, '赞')
  5. >>> dict1
  6. {0: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞'}
  7. >>> dict1.popitem()
  8. (6, '赞')
  9. >>> dict1.popitem()
  10. (5, '赞')
  11. >>> dict1
  12. {0: '赞', 2: '赞', 3: '赞', 4: '赞'}
复制代码
我用help()查看,文档是这样描写的:|  popitem(...)
|      D.popitem() -> (k, v), remove and return some (key, value) pair as a
|      2-tuple; but raise KeyError if D is empty.


文档里没有提到随机移除。是不是python版本更新后用法变动了?视频里的是3.3.3版本,我下的是最新的3.6.1版本。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-23 18:06:13 | 显示全部楼层
字典里并没有最后一个元素的说法,字典是无序的。它弹出的就是你所谓的最后一个元素。不是python版本更新后用法变动了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 18:14:13 | 显示全部楼层
左手十字 发表于 2017-7-23 18:06
字典里并没有最后一个元素的说法,字典是无序的。它弹出的就是你所谓的最后一个元素。不是python版本更新后 ...

那为什么视频里弹出的项是随机的,而我试了好几次都是弹出最末尾的项。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 18:27:38 | 显示全部楼层
本帖最后由 向西而笑 于 2017-7-23 18:35 编辑

我在手册的语法参考里看到了这个:
popitem(last=True)
The popitem() method for ordered dictionaries returns and removes a (key, value) pair. The pairs are returned in LIFO order if last is true or FIFO order if false.

如果FIFO(先进先出)的顺序为假,返回的值按照LIFO(后进先出)的顺序,
所以弹出的是最末尾的项吧,假如我在字典的中间插入了一个项,那么popitem()删除的就是我新加入的项而不是最末尾的项。
那这个也不是随机移除吧?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-23 18:36:25 | 显示全部楼层
向西而笑 发表于 2017-7-23 18:14
那为什么视频里弹出的项是随机的,而我试了好几次都是弹出最末尾的项。

视频里的是移除第一项
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-23 21:12:45 | 显示全部楼层
本帖最后由 冬雪雪冬 于 2017-7-23 21:19 编辑

新版的python的字典是有序的了。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-22 14:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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