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
The
setuses more memory than thelistas 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 behashable.