如何在python中对10亿个元素的列表进行排序 请详细说明 假设我们有无限的空间
答案 0 :(得分:1)
字典无序。它们是哈希表,并且不保证哈希表中键的顺序。
如果您需要订购密钥,请尝试在集合中订购的dict类。
如果您需要对键进行排序,可以将它们放在列表中,然后对列表进行排序。
my_dict = {key: value for key, value in zip(keys, values)} # Example dict
keys = [i for i in my_dict]
keys.sort()
答案 1 :(得分:0)
字典本身不存储键顺序。为此,您必须使用存储插入顺序的OrderedDict。
如果您只需要遍历排序的键,则可以使用sorted
:
for key in sorted(my_dict):
# output is already sorted by dictionary key
print key, my_dict[key]
如果您需要指定特殊键或方法,可以将其作为信息传递给已排序。以下示例按值排序:
for key, value in sorted(my_dict.items(), key=lambda x: x[1]):
# output is sorted by value
print key, value
使用reversed
:
for key in reversed(sorted(my_dict)):
# output is already sorted descending by dictionary key
print key, my_dict[key]
最后,此代码段将使用已排序的键/值对填充OrderedDict:
from collections import OrderedDict
my_ordered_dict = OrderedDict(sorted(my_dict.items(), key=lambda t: t[0]))
排序列表更加简单,只需使用sorted
(再次提供一个小方法,如果您有不同的排序键):
sorted_list = sorted(unsorted_list)