#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
метода, который обрабатывает его аргумент как общую последовательность и не применяет тип.