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 排序下保险
字段名 = scrapy.Field()