Hello I've been doing some HashSet Questions for the past week or so. The last Question asks me to create iter method for my HashSet. Here is my code:
class HashSet:
    def __init__(self, capacity=10):
        self.table = [None] * capacity
    def add(self, item):
        h = hash(item)
        index = h % len(self.table)
        if self.table[index] == None:
            self.table[index] = LinkedList() 
        if item not in self.table[index]:
            self.table[index].add(item)
    def __iter__(self):
        table = []
        ptr = None
        for i in range(0, len(self.table)):
            if self.table[i]:
                ptr = self.table[i].head
                while ptr != None:
                    table.append(ptr.item)
                    ptr = ptr.next
        return sorted(table)
It doesn't seem to work and it gives me an error: TypeError: iter() returned non-iterator of type 'list'. What am I supposed to return??
Input: 7 20 30 40 50 60 70 80 90 
Desired Output: [20, 30, 40, 50, 60, 70, 80, 90]
Values inside table var are correct I tested that with print() statement. How do I fix it ?
 
    