#python
#python
Вопрос:
test = [1,2]
one, two = test[:]
print(one)
print(two)
one, two = test[:] if len(test)==2 else test[0], test[0]
print(one)
print(two)
Вывод:
1, 2, [1, 2], 1
Почему распаковка списка завершается неудачно при использовании if
в качестве троичного оператора?
Комментарии:
1.
one, two = test[:] if len(test)==2 else (test[0], test[0])
?
Ответ №1:
Проблема здесь в приоритете:
test[:] if len(test)==2 else test[0], test[0]
анализируется как
(test[:] if len(test)==2 else test[0]), test[0]
Это не то, что вы хотите. Используйте круглые скобки вручную:
test[:] if len(test)==2 else (test[0], test[0])