Python 为什么字典看起来是颠倒的?
为什么python中的词典看起来是相反的Python 为什么字典看起来是颠倒的?,python,dictionary,Python,Dictionary,为什么python中的词典看起来是相反的 >>> a = {'one': '1', 'two': '2', 'three': '3', 'four': '4'} >>> a {'four': '4', 'three': '3', 'two': '2', 'one': '1'} 如何解决这个问题?python中的字典(以及通常的哈希表)是无序的。在python中,您可以对键使用sort()方法对它们进行排序。python中的字典(以及通常的哈希表)是无序的。在
>>> a = {'one': '1', 'two': '2', 'three': '3', 'four': '4'}
>>> a
{'four': '4', 'three': '3', 'two': '2', 'one': '1'}
如何解决这个问题?python中的字典(以及通常的哈希表)是无序的。在python中,您可以对键使用sort()
方法对它们进行排序。python中的字典(以及通常的哈希表)是无序的。在python中,您可以对键使用sort()
方法对它们进行排序。您希望的“标准顺序”是什么?它非常依赖于应用程序。python字典无论如何都不能保证密钥顺序
在任何情况下,您都可以按自己的方式迭代字典键()。您希望的“标准顺序”是什么?它非常依赖于应用程序。python字典无论如何都不能保证密钥顺序
在任何情况下,您都可以按自己的方式迭代字典键()。字典没有内在顺序。您必须滚动自己的有序dict实现、使用或使用 字典没有固有的顺序。您必须滚动自己的有序dict实现、使用或使用 现在您知道dict是无序的,下面是如何将它们转换为可以排序的列表 按键排序
>>> sorted(a.items())
[('four', '4'), ('one', '1'), ('three', '3'), ('two', '2')]
按值排序
>>> from operator import itemgetter
>>> sorted(a.items(),key=itemgetter(1))
[('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')]
>>>
现在您知道了dict是无序的,下面是如何将它们转换为可以排序的列表 按键排序
>>> sorted(a.items())
[('four', '4'), ('one', '1'), ('three', '3'), ('two', '2')]
按值排序
>>> from operator import itemgetter
>>> sorted(a.items(),key=itemgetter(1))
[('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')]
>>>
从:
最好把字典想象成一本书
一组无序的键:值对
和(关于dict.items):
CPython实现细节:关键
和值以任意形式列出
非随机的顺序是变化的
跨Python实现,以及
这取决于词典的历史
插入和删除
因此,如果需要按特定顺序处理dict,请对键或值进行排序,例如:
>>> sorted(a.keys())
['four', 'one', 'three', 'two']
>>> sorted(a.values())
['1', '2', '3', '4']
从:
最好把字典想象成一本书
一组无序的键:值对
和(关于dict.items):
CPython实现细节:关键
和值以任意形式列出
非随机的顺序是变化的
跨Python实现,以及
这取决于词典的历史
插入和删除
因此,如果需要按特定顺序处理dict,请对键或值进行排序,例如:
>>> sorted(a.keys())
['four', 'one', 'three', 'two']
>>> sorted(a.values())
['1', '2', '3', '4']
Python3.1有一个
OrderedDict
>>> from collections import OrderedDict
>>> o=OrderedDict([('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')])
>>> o
OrderedDict([('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')])
>>> for k,v in o.items():
... print (k,v)
...
one 1
two 2
three 3
four 4
Python3.1有一个
OrderedDict
>>> from collections import OrderedDict
>>> o=OrderedDict([('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')])
>>> o
OrderedDict([('one', '1'), ('two', '2'), ('three', '3'), ('four', '4')])
>>> for k,v in o.items():
... print (k,v)
...
one 1
two 2
three 3
four 4
@myfreeweb:有两个链接,我可以访问它们@myfreeweb:有两个链接,我可以访问它们。“修复”是什么意思?您喜欢什么样的顺序?fix是什么意思?你想要点什么?太棒了。但是我在Python2上没有使用有序dicts就完成了这项工作。Orderedicts中的项是按项添加到字典中时的顺序排序的,而不是按键或项排序的。因此,如果您添加了无序的项目,并且OrderedDict没有帮助:-)太棒了。但是我在Python2上没有使用有序dicts就完成了这项工作。Orderedicts中的项是按项添加到字典中时的顺序排序的,而不是按键或项排序的。因此,如果您添加了无序的项目,并且OrderedDict没有帮助:-)