On 10 Sep, 16:28, hofer <[EMAIL PROTECTED]> wrote: > Hi, > > Let's take following perl code snippet: > > %myhash=( one => 1 , two => 2 , three => 3 ); > ($v1,$v2,$v3) = @myhash{qw(one two two)}; # <-- line of interest > print "$v1\n$v2\n$v2\n"; > > How do I translate the second line in a similiar compact way to > python? > > Below is what I tried. I'm just interested in something more compact. > > mydict={ 'one' : 1 , 'two' : 2 , 'three' : 3 } > # first idea, but still a little too much to type > [v1,v2,v3] = [ mydict[k] for k in ['one','two','two']] > > # for long lists lazier typing,but more computational intensive > # as split will probably be performed at runtime and not compilation > time > [v1,v2,v3] = [ mydict[k] for k in 'one two two'.split()] > > print "%s\n%s\n%s" %(v1,v2,v3) > > thanks for any ideas
Another option [note I'm not stating it's preferred, but it would appear to be closer to some syntax that you'd prefer to use....] >>> from operator import itemgetter >>> x = { 'one' : 1, 'two' : 2, 'three' : 3 } >>> itemgetter('one', 'one', 'two')(x) (1, 1, 2) hth Jon. -- http://mail.python.org/mailman/listinfo/python-list