python - 为什么具有相同值的字符串引用相同的对象,而列表则不然?

标签 python python-3.x

对具有相同值的字符串使用 is 运算符会返回 True,但对具有相同元素的列表使用 is 运算符会返回 False。为什么?

a = 'banana'
b = 'banana'

c = ['b', 'a']
d = ['b', 'a']

print(a is b)
print(c is d)

如果 is 运算符比较操作数是否引用同一个对象,则两个 print 语句都应返回 True。然而,列表的情况并非如此。因此,这两个列表似乎并不引用同一个对象。有具体原因吗?

最佳答案

我相信这是因为列表是可变的(可以修改,例如通过my_list.append()my_list.pop())而字符串则不能。

检查this video

关于python - 为什么具有相同值的字符串引用相同的对象,而列表则不然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53961231/

相关文章:

python - Pandas.get_dummies 返回两列(_Y 和 _N)而不是一列

python - 为什么这个切片分配没有引发错误?

python - 重新打开 GTK 和 matplotlib 窗口 - GTK 窗口为空白

python - 从外键类型的字段中选择值

python - PYQT 在图片上绘制选择矩形

python - 尝试根据列是否包含特定字符串对其进行重新编码

python - 从scrapy中提取数据到数组中

python - 将 block 矩阵的每个 block 与 NumPy 中的不同系数相乘

python - PyQt5.5 和 Qt5 许可证问题

python - 如何使用python扩展ipv6地址?