首页 > 解决方案 > 什么时候 list[n] == list

问题描述

我正在阅读一些代码,遇到一行 read if len(list)==1 and list[0] == list:,其中 list 是所有数字的列表。我在阅读代码时假设一个元素列表等于那个元素,但是当我尝试时[0] == 0,它返回了False. 那么“if”语句是什么意思呢?

标签: pythonlistpython-2.7

解决方案


列表可以包含对自身的引用:

>>> lst = []
>>> lst.append(lst)
>>> print(lst)
[[...]]
>>> lst[0] == lst
True

当然,对于其他容器类型也是如此,但并不那么容易,例如 aset不能包含另一个set(至少不是直接),tuple或者frozenset不允许在创建元素后添加元素(同样,至少不是直接)。


推荐阅读