【问题标题】:python "in" operation comparing a string with a tuple of containing only 1 stringpython“in”操作将字符串与仅包含1个字符串的元组进行比较
【发布时间】:2022-07-05 22:44:48
【问题描述】:

在将字符串与仅包含 1 个字符串的元组进行比较时,我注意到“in”操作的一种奇怪行为。

'monday' in ('not monday')

结果为真
好像我们在比较 2 个字符串

但是如果我通过在元组中添加另一个元素来更改表达式。

'monday' in ('not monday', 'not monday neither')

它按预期返回 False。

知道为什么吗?

【问题讨论】:

  • 第一个不是元组而是一个字符串,如果你在结尾的引号后面加了一个逗号。
  • 除了空元组()逗号创建元组。括号只是将元组逗号与逗号的其他用法(例如在函数参数列表中)区分开来。

标签: python tuples


【解决方案1】:
>>> 'monday' in ('not monday')
True
>>> 'monday' in ('not monday',)
False

单元素元组必须有尾随逗号。否则,它会被解释为常规的操作顺序括号,在这种情况下是没有意义的所以,'monday' in ('not monday') 在语法上与'monday' in 'not monday' 相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多