Несоответствие оператора Python plus

#python #operators

#python #операторы

Вопрос:

 In [26]: l=[]

In [27]: s="asdsad"

In [28]: l =s

In [29]: l
Out[29]: ['a', 's', 'd', 's', 'a', 'd']
  

Однако,

 In [30]: l s
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)

/home/xiaohan/code/proteincrawler/id_crawler.py in <module>()
----> 1 
      2 
      3 
      4 
      5 

TypeError: can only concatenate list (not "str") to list
  

Итак, операторы в ‘ =’ и ‘ ‘ разные.

Но я думаю, что они должны быть одинаковыми, потому что все они плюс

Я ошибаюсь или что-то происходит за сценой?

Комментарии:

1. Единственное отличие, которое «всплывает» из вашего сообщения, заключается в том, что во втором операторе plus вы не присвоили результат переменной. Это перевод с помощью операции: print(l s) и, возможно, это все портит. Вы еще не пытались присвоить l s новой переменной?

2. @DonCallisto Совершенно неверно.

Ответ №1:

Это объясняется здесь . Скопировано по ссылке:

Это потому = , что оператор выполняет эквивалент вызова extend метода, который обрабатывает его аргумент как общую последовательность и не применяет тип.