On Dec 4, 4:42 pm, Lie Ryan <lie.1...@gmail.com> wrote: > On 12/5/2009 9:41 AM, Carl Banks wrote: > > > > > > > On Dec 4, 12:46 pm, geremy condra<debat...@gmail.com> wrote: > > more common than full-blown graph package). > >> Sure, its a tree, which is also a graph. In this case it looks to > >> me more like a directed acyclic graph than anything, but its > >> pretty much just semantics since the interface is functionally > >> equivalent. > > > I'd have to agree with Lie, yes a tree is a graph, but it's simply not > > an argument that Python community is grasping for graph structures. > > It's like arguing that the Python community could benefit from a > > quaternion type, because quaternions are actually heavily used in > > Python, because a scalar number is a quarternion. > > > Carl Banks > > > (Would be +1 on a good graph implementation... just not because of > > ElementTree.) > > I think this could be an interpretation of the Zen: > > Simple is better than complex. > Complex is better than complicated. > > can be read as: > List is better than Tree > Tree is better than Graph > > not having Tree and Graph package in the standard library force most > people to find List-based solution. And people that know they need > graphs will find them in 3rd party modules. I have needed Trees a few > times in python, but very rarely a Graph (except for playing around). > YMDWV (your mileage definitely will vary).
If you want a better example, consider various database schemas that have one-to-one, one-to-many, many-to-one, and many-to-many relationships. I daresay these are very common. All of these can be represented by a non-directed graph. Another common use of directed graphs is for dependency relationships. In practice, a lot of times running things in order of dependency is done by assigning everything a scalar priotity, and executing in order of priority. This can work ok, but it's fragile. If there's a graph type in Python maybe people will be encouraged to handle dependencies explicitly. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list