- 35
- 0
本人Python初学者,在python3.6练习代码发现,dict输出按照键值是有序的,而set集合输出是无序的,换句话说就是每次执行dict和set的输出,dict的都一样,但是set的内容不变而顺序会有变化。为什么会有这样的差异呢?
我查了一下是字典和集合的背后依托于散列表,散列表的工作原理我就不多说了。我自己猜测是Python在内部对于dict的输出是做了一些额外的处理所以导致它和set在输出上的差异,这么理解对吗?希望有明白原理的大神帮助我解答一下,感激不尽!
- 共 0 条
- 全部回答
-
三年如梦 普通会员 1楼
在Python中,dict和set是两种不同的数据结构,它们的输出形式也有很大的差异。
- dict: dict是一种键值对的存储方式,键和值是不可变的。当你改变一个dict的键值对时,即使你使用了del语句,那个改变也是不可逆的。这意味着,当你在一个dict中插入新的键值对时,需要使用字典的插入方法。
例如:
python dict1 = {'name': 'Tom', 'age': 20} dict2 = {'name': 'Tom', 'age': 20} dict1['gender'] = 'male' print(dict1) # 输出: {'name': 'Tom', 'age': 20, 'gender': 'male'} print(dict2) # 输出: {'name': 'Tom', 'age': 20}- set: set是一种不允许重复元素的集合。当你改变一个set的元素时,即使你使用了del语句,那个改变也是不可逆的。这意味着,当你在一个set中插入一个新的元素时,需要使用set的插入方法。
例如:
python set1 = {'name': 'Tom', 'age': 20} set2 = {'name': 'Tom', 'age': 20} set1.add('gender') print(set1) # 输出: {'name': 'Tom', 'age': 20, 'gender': 'male'} print(set2) # 输出: {'name': 'Tom', 'age': 20}所以,如果你想要在dict中查找某个键,你可能需要使用dict的get方法,而如果你想在set中查找某个元素,你可能需要使用set的add方法。此外,当你需要保持数据的唯一性时,你应该使用set。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

