Подтвердить что ты не робот

Python присваивает нескольким переменным одинаковое значение списка?

Я пишу функцию для вычисления дат календаря. При сокращении строк я обнаружил, что не могу назначить несколько переменных в один и тот же диапазон.

Jan, Mar, May, Jul, Aug, Oct, Dec = range(1,32)

Будет ли эффективный способ присвоить эти значения и почему python предоставляет ValueError?

4b9b3361

Ответ 1

Использование

Jan = Mar = May = ... = range(1, 32)

Ответ 2

Самый простой способ сделать то, что вы описали, - использовать синтаксис x=y=z ... = VALUE, где x, y, z и любые другие включенные вами перемены будут иметь значение VALUE.

В вашем примере все переменные, разделенные запятыми в левой части знака равенства, назначаются последовательным значениям кортежа с правой стороны. Следовательно, вы можете сделать что-то вроде этого:

values = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec = values

В вашем коде у вас есть 7 значений слева и 31 справа, поэтому вы получаете ошибку вне диапазона, потому что список слева длиннее числа или переменных на левой стороне, которым нужно назначить значения в нем. Я знаю, что код, приведенный выше, не имеет большого значения для достижения вашей цели, но я думал, что по крайней мере даю представление о том, что он пытался сделать.: D