字典中的items()用法


dict = {'老大':'15岁',
         '老二':'14岁',
         '老三':'2岁',
        }
print(dict.items())
for key,values in dict.items():
    print(key + '已经' + values + '了')

Python中字典里是无序的,但是用items()之后得到结果
dict_items([('老大', '15岁'), ('老二', '14岁'), ('老三', '2岁')]) 是按照字典的先后顺序排列了?为何用到items() 之后就变成按照字典书写的先后顺序了?字典的排列不是无序的吗?

是的,Python中的字典是无序的,即使使用dict.items()也不能保证字典中键值对的顺序。在Python 3.7以前,字典中键值对的顺序都是根据哈希表随机分布的,无法确定。

从Python 3.7开始,字典中的元素维护了它们被插入的顺序。因此,在Python 3.7及更高版本中,如果您使用dict.items()方法遍历一个字典,得到的结果可能会按照插入的先后顺序排列。但是,这并不表示字典中的元素始终按照这种方式排序。在Python中,字典仍然是无序的。

无论如何,使用dict.items()方法可以将字典中的所有键值对组成一个元素为元组的可迭代对象,可以方便地进行遍历、筛选等操作。

总之,虽然字典在Python中是无序的,但是使用dict.items()方法可以得到一个字典视图对象,该对象是可迭代的,并且可能按照插入顺序排列(取决于Python版本和实现细节)。

从Python3.6开始,Python中内置的字典是有序的

items() 方法返回的结果类型是 dict_items,它并不是一个真正的列表,而是一个视图,并不保证是有序的
还是用 sorted 排序下保险

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^