
This error is very similar to the dict_keys error. It means you tried to use square brackets [] to get an item from a set. In Python, when you see the TypeError set not subscriptable, it tells you that sets cannot be accessed by indexing.
The Cause of TypeError set not subscriptable
A List is ordered. You can ask for my_list[0] (the first item). A set is unordered. It’s like a bag of unique items. You can’t ask for “the first item” because there is no “first.”
Problem Code:
my_set = {10, 20, 30}
# What is the "first" item? Python doesn't know.
first_item = my_set[0]
# CRASH! TypeError: 'set' object is not subscriptableThe Fixes of TypeError set not subscriptable
Fix 1: Check for Membership (The “Set” Way)
You don’t get items from a set; you check if items are in the set. This is what sets are built for, and it’s incredibly fast.
if 10 in my_set:
print("Yes, 10 is in the set.")Fix 2: Convert to a List
If you absolutely must get an item by its index, you have to convert the set to a list first.
my_set = {10, 20, 30}
my_list = list(my_set)
print(my_list[0]) # Works!Warning: Be careful! Since sets are unordered, you have no guarantee that my_list[0] will be 10. If you need order, use a list from the start.





