为了账号安全,请及时绑定邮箱和手机立即绑定

PY之dict 与遍历

1、关于 dict 的无序,我每次print d,得出的都是同样的顺序,这个无序怎么理解? 2、针对dict的遍历,dict的无序属性,会不会导致遍历的数值出现重复?遍历前N项,与遍历前M项,N≠M,这个过程中两次遍历是否需要刷新dict? 3、尝试以上推测,并找出相关可利用漏洞···

正在回答

2 回答

意思就是几个带不同号码的球放在一个箱子里,一次一个的拿出来,拿出来的号码顺序不固定,但是拿出来的号码不可能再次拿出来,除非把所有球倒回去重新拿。然后,你每次拿出来的顺序都一样,但是别的客户端经过你的程序拿出来的顺序就不一定给你的一样了。你说的M和N,就是一个dict的两次遍历么,跟刷新没什么关系,就只是遍历了两次,结果顺序可能不一样而已。至于你说的漏洞方面,你可以把dict的键存在有序不可变的tuple里面,再根据键获得处理dict的值不就行了

0 回复 有任何疑惑可以回复我~
#1

树下黑手 提问者

大概意思我懂了,再问下,你说的把所有球倒回去,是怎么实现?是重新启动程序,还是换一个设备登陆? 为什么我print d 的时候,每次都是一样的顺序,是不是也要重启程序,才会重新释放内存,这样再执行print d 才能出现不同的顺序?
2017-07-22 回复 有任何疑惑可以回复我~
#2

kerwinz 回复 树下黑手 提问者

不是把球倒回去,是一个箱子里有这些球,然后用的时候去取,第二次用的时候,还是这么多球,把倒回去省略了。别的就不要管了,学这个知道怎么用就行了,如果你对底层逻辑有兴趣可以去学C语言。这个地方的顺序完全不用管它,想取固定顺序值,就把key取出来放在tuple里,想随机就用random随机取tuple里面的key,再通过key取球
2017-07-24 回复 有任何疑惑可以回复我~
#3

树下黑手 提问者 回复 kerwinz

哦哦,是我又钻牛角尖了。多谢指教啦。
2017-07-25 回复 有任何疑惑可以回复我~

哦哦,是我又钻牛角尖了。多谢指教啦。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

PY之dict 与遍历

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信