More information about the Underscore mailing list

[_] Python Question

Rick Hurst rick.hurst at
Fri Dec 18 09:45:00 GMT 2009

On Thu, Dec 17, 2009 at 3:51 PM, Andy Gale <andy at> wrote:
> Hi _,
> I know there's a few Python goons on here so... is there a better way
> of doing this in Python?
> attributes = {}
> attribute_data = mark.fetchall()
> for i in attribute_data:
>       if i[1] in attributes:
>               attributes[i[1]].append(i[0])
>       else:
>               attributes[i[1]] = [i[0]]
> Given my experience with Python so far, there is probably some epic
> shortcut for doing this.

Just to throw a bit of general programming debate in here, in my mind
(as mainly a front-end developer who gets his hands only as dirty as
necessary with back-end stuff), there is nothing worse than when a
proper programmer replaces your naive but readable logic with an epic
shortcut. The amount of times i've done something readable and easily
debugged like:-

for foo in bar:
  if blah then:
    eggs #helpful comment
    if gravy then
      ham #another helpful comment

Then a proper programmer sais "there's no need to write so many lines
of code, you can do it in one line of code like this":-

foo:bar[alpha in {romeo xfactor/veg}]cheese[x][x].eggs()

above example is completely made up, so don't try to debug it - in
fact even if it wasn't made up, don't try to debug it, because you
won't be able to (being my point).

Rick Hurst, Freelance Web Developer, Bristol, UK