【问题标题】:Tuple comparison 'A' == ('A'), how to avoid that? [duplicate]元组比较'A' ==('A'),如何避免呢? [复制]
【发布时间】:2016-11-08 14:10:44
【问题描述】:

看到 python 返回 True 进行这样的比较,我感到很困惑: 'A' == ('A')

然后我从this 问题中找到了this 的解释。

Python 将元组中的每个元素与另一个比较项进行比较。 我的问题是我怎样才能避免这种情况? 我正在寻找的是一个 '==' 逻辑运算符,它为 'A' == 'A' 或 ('A') == ('A') 返回 True,但对于 'A' ==' (' A')。

【问题讨论】:

  • ('A') 不是元组,是吗? type(('A')) 返回str
  • 哦,我的错。我不知道定义单个元素元组是一种特殊情况。
  • 逗号定义了一个元组,而不是括号。一个例外是空元组(),它可以(应该?)写成(,),但不需要()来表示任何带括号的表达式。

标签: python tuples equality


【解决方案1】:

您的“解释”与您的实际问题无关。

('A') 不是元组。它只是一个字符串。单元素元组的定义如下:('A',)。当您使用实际元组时,您的比较正确返回 False:

>>> 'A' == ('A',)
False

【讨论】:

  • 成功了。我想我必须更准确地研究元组后面的逗号问题。
【解决方案2】:

Daniel Roseman 已经提供了正确答案。只是一个补充:

>>> type("A")
<type 'str'>

>>> type(("A"))
<type 'str'>

>>> type(("A",))
<type 'tuple'>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多