当前位置: 首页 > 面试题库 >

它在python文档中的何处允许“ in”运算符被链接?

卓宏达
2023-03-14
问题内容

我最近发现以下结果True

'a' in 'ab' in 'abc'

我知道python比较链,例如a < b < c,但是我在文档中看不到任何合法的链接。

这是CPython实现中的偶然功能,还是指定了此行为?


问题答案:

这是完全指定的行为,不是偶然的功能。运算符链接在“ 比较运算符”
部分中
定义

可以任意链接比较,例如x < y <= z与等效x < y and y <= z,不同之处在于y比较仅被评估一次(但在两种情况下zx < y被发现为假,则根本不评估)。

in是比较运算符之一;从同一部分:

comp_operator ::=  "<" | ">" | "==" | ">=" | "<=" | "<>" | "!="
                   | "is" ["not"] | ["not"] "in"

对于可能没有多大意义的组合也没有例外。

因此,您作为示例使用的特定表达式将执行为'a' in 'ab' and 'ab' in 'abc',而 'ab'文字仅执行(加载)一次。



 类似资料:
  • 问题内容: 我正在尝试在Dropwizard上使用MYSQL JDBI进行IN查询(我认为不相关)。 如这里的建议,我还用 但是,当我启动应用程序时,出现以下错误: 有谁对解决这个问题有个好主意? 问题答案: 有两种方法可以实现它。 1 。使用 该注释期望StringTemplate中具有SQL语句的组文件 说我有这个文件PersonExternalizedSqlDAO 由于我们正在使用,因此必须

  • 问题内容: 我有一个名为NUMS的表,其中只有n列。 然后在其中填充值1,2,3,4,5,null。 现在查询 在这种情况下,我想它已转换为 我也在比较n和一个应该产生未知值的null值,它应该返回一个空集。但是它返回1,2(null不返回,尽管包含在IN运算符中) 现在查询 …转换为: 在这里,我上面所说的有效,并且不返回任何内容。 任何人都可以详细解释发生了什么。 问题答案: 好,我找到了答案

  • 问题内容: 对于百万分之一的时间,我希望使用Java中的运算符,类似于SQL中的运算符。它可以作为编译器语法糖来实现。所以这 …真的很棒。实际上,以上内容与此处相当冗长的(且不适用于原始类型)构造相同: 或针对,和类似的类型: 也许会有更有效的实现。 题: 这样的东西会成为Java 8的一部分吗?如果没有,我该如何提出建议?还是我现在可以使用任何等效的构造? 问题答案: 使用op4j: 使用相同的

  • 问题内容: 我有下面的SQL,但无法正常工作 产品类别是婴儿礼物篮,关键字字段是婴儿礼物篮,婴儿礼物 基本上想在关键字列表中找到product_category时获得sub_category? 问题答案: 您将需要使用 使用规范化的数据库结构,这将更加容易和高效。(您当前在单个列中包含多个关键字的结构违反了第一个范式)

  • 以下是在gradle中运行build命令时的错误消息。我正在从tomcat 7迁移到tomcat 9。 _jspx_导入_类=新java。util。哈希集 我使用JDK1.8和gradle来构建代码。

  • 问题内容: 我试图在SQL中找到与\ 等效的ElasticSearch查询。 我知道我们可以使用带有多个OR的QueryString查询来获得相同的答案,但这最终导致很多OR。 谁能分享这个例子? 问题答案: 与克里斯建议的评论类似,类似的替换是 过滤器 (查询暗示得分,这可能会改善返回的订单)。 等效的Elasticsearch 1.x过滤器为: 等效的Elasticsearch 2.x +过滤