tjgolden at gmail.com
Tue Jan 16 16:51:16 CET 2007
> I have a class such as...
> And I am storing them in a Queue.Queue...
> import Queue
> q = Queue.Queue()
> q.put(Foo('hello world'))
> how can I search "q" for an instance of Foo which has 'id' equal to say
> 2? Typically a queue only lets you put and get, not really search.
It's possible you're seeing the Queue structure as
some sort of list / array, rather than its intended purpose
as a thread-safe channel. If I'm wrong, ignore the rest of
this post. If, however, you're just after a container for
various instances of Foo then use a list or a dict,
depending on what you're after.
def __init__ (self, id):
self.id = id
list_of_foos = [Foo('blah'), Foo('hello'), Foo('test')]
dict_of_foos = dict ((f.id, f) for f in list_of_foos)
More information about the Python-list