账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python中关于dict和set的输出差异性问题应该如何理解?
    35
    0

    本人Python初学者,在python3.6练习代码发现,dict输出按照键值是有序的,而set集合输出是无序的,换句话说就是每次执行dict和set的输出,dict的都一样,但是set的内容不变而顺序会有变化。为什么会有这样的差异呢?
    我查了一下是字典和集合的背后依托于散列表,散列表的工作原理我就不多说了。我自己猜测是Python在内部对于dict的输出是做了一些额外的处理所以导致它和set在输出上的差异,这么理解对吗?希望有明白原理的大神帮助我解答一下,感激不尽!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 三年如梦 普通会员 1楼

      在Python中,dict和set是两种不同的数据结构,它们的输出形式也有很大的差异。

      1. 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}

      1. 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。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部