[EMAIL PROTECTED] wrote:
> Working with several thousand tagged items on a Tkinter Canvas, I want
> to change different configurations of objects having a certain group of
> tags.
> 
> I've used the sets module, on the tuple returned by Tkinter.Canvas.
> find_withtag() method.
> 
> Since this method takes only one tag at time, I use it for each tag
> that is part of the look-up group, create a set object for each tuple
> and intersect the resulting sets, that I tuple out again to feed a loop
> to change the configuration of the items.
> 
> Anyone have a more pythonic way (or better performing ) way to suggest
> ?

It depends. If the search on tags is implemented linear, it might be 
better to loop over all items and filter suing a compound predicate, 
like this:

rouge_artefacts = [item for m1.all_itmes() if item.has_tag("rouge") and 
item.has_tag("artefact")]

Please note that I don't know TKinter's API, but I can't imagine that it 
lacks the possibility to fettch a list of all items and query an item 
for it tags. The synopsis may vary from above, thogh.

But if tkinter stores the tagged items as mapping of tag -> set/list, 
then I think your approach is as fast as you can get. Time it out. And 
maybe another thing would be to manage that tagging relation yourself.

Regards,

Diez
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to