2016-11-18 3 views
0

Я не понимаю, следующий код в PythonКак работает следующий фрагмент кода на Python?

l = [] 
l += [1],[2] 
print l # this gives [[1],[2]] 

Однако

l = [] 
l = l + [1],[2] 
print l # this gives ([2], [3]) 

Может кто-нибудь объяснить причину выше поведения? Я использую Python 2.7

Спасибо.

+0

Когда я пытаюсь, он возвращает: '([1], [2])' – mitoRibo

ответ

0

При записи

l = l + [1],[2] 

затем

l+[1] 

сначала вычисляется на правой стороне, что упрощает оценку к

l = [1],[2] 

который интерпретируется как кортеж, и повторное присвоение имени «l». В вашем первом выражении кортеж списков с правой стороны добавляется один за другим, а имя «l» остается списком.

Смежные вопросы