In the following script, m1() and m2() work fine. I am assuming m2() is faster although I haven't checked that (loops through the list twice instead of once).

Now what I am trying to do is something like m3(). As currently written it does not work, and I have tried different ways, but I haven't managed to make it work.

Is there a possibility ? Or is m2() the optimum ?


Thanks.



#!/usr/bin/python

l = [ { 'colour': 'black',   'num': 0},
      { 'colour': 'brown',   'num': 1},
      { 'colour': 'red',     'num': 2},
      { 'colour': 'orange',  'num': 3},
      { 'colour': 'yellow',  'num': 4},
      { 'colour': 'green',   'num': 5},
      { 'colour': 'blue',    'num': 6},
      { 'colour': 'violet',  'num': 7},
      { 'colour': 'grey',    'num': 8},
      { 'colour': 'white',   'num': 9}
    ]

def m1():
  colours = [ e['colour'] for e in l ]
  nums    = [ e['num']    for e in l ]

def m2():
  colours = []
  nums    = []
  for e in l:
    colours.append(e['colour'])
    nums.append(e['num'])

#def m3():
#  colours, nums = [ e['colour'], e['num'] for e in l ]





--
Yves.
http://www.SollerS.ca
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to