banx
banx

Reputation: 4416

Why are sets bigger than lists in python?

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

Upvotes: 13

Views: 838

Answers (1)

David Webb
David Webb

Reputation: 193734

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.

Upvotes: 19

Related Questions