【发布时间】:2019-11-20 22:33:43
【问题描述】:
简单地说,是否有任何值x 在 Python 中适用于以下内容?
(x in []) == True
这是一个基本问题,但否定答案必须耗尽所有可能性:即,“没有任何类型和任何给定类型的常量,使得 x in [] 返回值 True。”然而,证明或反驳这种详尽无遗可能非常简单。
很容易测试各种值,正如预期的那样,是不是空列表的成员:
>>> None in []
False
>>> False in []
False
>>> [] in []
False
>>> "" in []
False
>>> {} in []
False
不是是这样的吗?
【问题讨论】:
-
不,
in永远不会在运算符的右手是空列表的情况下返回 True。我并不是要粗鲁,但线索就在名称中,一个空列表中没有任何“内容” -
看起来很简单,您可以简单地尝试一下,并且您必须考虑一些场景:那么您为什么不尝试一下呢?
-
@barny 您不能使用该方法来证明是否定的。它只会告诉你,它不会为你尝试的值返回 True,可能有一些你没有想到的东西。
-
这个问题纯粹是出于教育原因吗?
-
@barny 如果您正在尝试编写防弹代码,或者您正在尝试编写测试用例,您需要知道极端情况是什么,以便您可以防止它们或测试它该代码适用于他们。如果您不确定他们是什么,寻求帮助似乎是完全合理的。
标签: python list keyword empty-list