2013-07-03 2 views
0

Например, в Erlang можно использовать обычный шаблон, сопоставляющий wildcart при чтении кортежей. Скажем, я хочу прочитать значение красного канала из цвета. Вместо того чтобы писать:Есть ли какой-то кортеж кортежа в Python?

{R, G, B, A} = color() 

Я мог бы сделать:

{R, _, _, _} = color() 

'_' здесь означает все, что я не безразлична. Этот синтаксис делает код немного более чистым по ненужным переменным.

Есть ли что-то подобное в Python?

ответ

3

Не по себе, так как _ is a valid variable name. Можно распаковать так же, хотя:

r, x, x, x = color() 

3.x позволяет не заботиться о тех, на конце концов, все сразу:

r, *x = color() 

Или индексирование всегда вариант.

r = color()[0] 
+0

Поскольку '_' является, как вы говорите, допустимым именем переменной: почему бы не использовать его здесь вместо' x', который выглядит как ошибка или случайно неиспользуемая переменная? – delnan

+1

@ delnan: Из-за его использования в i18n. –

+0

Я все время забываю об этом, хороший момент. Тем не менее, я думаю, что '_' предпочтительнее, в коде нет i18n. В любом случае, 'x' кажется довольно плохим выбором для переменной« не волнует ». – delnan