Простите, если об этом уже спрашивали. Я не знал, как его искать.
Я хорошо знаком со следующей идиомой:
def foo():
return [1,2,3]
[a,b,c] = foo()
(d,e,f) = foo()
где значения, содержащиеся в левой части, будут назначаться на основе значений, возвращаемых функцией справа.
Я также знаю, что вы можете сделать
def bar():
return {'a':1,'b':2,'c':3}
(one, two, three) = bar()
[four, five, six] = bar()
где ключи, возвращаемые с правой стороны, будут назначены контейнерам с левой стороны.
Однако, мне любопытно, есть ли способ сделать следующее в Python 2.6 или более ранней версии:
{letterA:one, letterB:two, letterC:three} = bar()
и работает ли он так же, как работает от последовательностей к последовательностям? Если нет, то почему? Наивно пытаться сделать это так, как я написал, не получится.