loop over list and process into groups

mk mrkafk at gmail.com
Fri Mar 5 08:26:13 EST 2010


Sneaky Wombat wrote:
> [ 'VLAN4065',
> 'Interface',
> 'Gi9/6',
> 'Po2',
> 'Po3',
> 'Po306',
> 'VLAN4068',
> 'Interface',
> 'Gi9/6',
> 'VLAN4069',
> 'Interface',
> 'Gi9/6',]

Hey, I just invented a cute ;-) two-liner using list comprehensions:
# alist = list above
tmp, dk = [], {}
[(x.startswith('VLAN') and (dk.setdefault(x,[]) or tmp.append(x))) or 
(not x.startswith('VLAN') and dk[tmp[-1]].append(x)) for x in alist 
if x != 'Interface']
No need to use a nuke like itertools to kill a fly. ;-)
Regards,
mk


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /