Python在列表上附加()与+运算符,为什么这些会给出不同的结果?

为什么这两个操作(append()分别+)给出不同的结果?


>>> c = [1, 2, 3]

>>> c

[1, 2, 3]

>>> c += c

>>> c

[1, 2, 3, 1, 2, 3]

>>> c = [1, 2, 3]

>>> c.append(c)

>>> c

[1, 2, 3, [...]]

>>> 

在最后一种情况下,实际上存在无限递归。c[-1]并且c是一样的。为什么它与+操作不同?


炎炎设计
浏览 520回答 3
3回答

交互式爱情

Python列表是异构的,即同一列表中的元素可以是任何类型的对象。表达式:c.append(c)将对象附加c到列表中。在这种情况下,它使列表本身成为列表的成员。表达式c += c将两个列表一起添加,并将结果分配给变量c。+在列表上定义重载运算符以创建新列表,其内容是第一个列表中的元素和第二个列表中的元素。所以这些只是用于设计不同事物的不同表达方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python