tags:

views:

157

answers:

2

Why is the size of sets in Python noticeably larger than that of lists with same elements?

a = set(range(10000))
b = list(range(10000))
print('set size = ', a.__sizeof__())
print('list size = ', b.__sizeof__())

output:

set size = 524488
list size = 90088
+11  A: 

The set uses more memory than the list as it stores a table of hashes of all the elements so it can quickly detect duplicate entries and so on. This is why every set member must be hashable.

Dave Webb
A: 

The python list is implemented like a dynamic array, frankly most data structures (except tuples) would be more memory consuming.

dan_waterworth