我有一个包含UTF8字符串的列表my_list
:
>>> len(my_list)
8777
>>> getsizeof(my_list) # <-- note the size
77848
由于某些原因,排序后的列表(my_sorted_list = sorted(my_list)
)占用更多的内存:
>>> len(my_sorted_list)
8777
>>> getsizeof(my_sorted_list) # <-- note the size
79104
为什么sorted
返回的列表在内存中占用的空间比初始未排序的列表还要大?
sorted
会创建新列表,你可以参考我的最近问题(list()使用比列表推导式更多的内存),这将为您提供一些Python见解。 - vishes_shelldict
的实现吧,它的实现一直存活到 在3.6
中发生了相当大的变化 为止。;-) - Dimitris Fasarakis Hilliard