Я читаю о *args
и **kwargs
в Python и экспериментирую с REPL:
varX, *varY = [99, 100, 101]
Я ожидал, что varX
будет [99, 100, 101]
, но этого не произошло. Вместо этого я получаю это:
print(varX)
# 99
Хм? Ну тогда что такое varY
?
print(varY)
# [100, 101]
Получение списка имеет смысл, но я думал, что в нем будет три значения, а не два.
print(*varY)
# 100 101
По крайней мере, это имеет смысл для меня, основываясь на всем, что произошло раньше. Итак, мой большой вопрос: почему Python (3.6) делает исходные назначения таким образом?
varX
, а затем используете оператор*splat
для распаковки всего остального вvarY
. Вы также можете использоватьx, y, z = [1,2,3]
для распаковки каждого значения списка в каждую из ваших трех переменных. - person user3483203   schedule 02.08.2018