【问题标题】:Why empty string in a non empty dictionary is true in python? [duplicate]为什么非空字典中的空字符串在python中为真? [复制]
【发布时间】:2021-07-17 02:18:51
【问题描述】:

我不明白这种行为的逻辑思想:

d = {'a': 'a',
     'b': 'b',
     }

print('' in d['a']) #---> True
print(d['a'] in '') #---> False

有人可以帮我吗?

【问题讨论】:

  • 这与字典无关,在 Python 中,空字符串在任何非空字符串中
  • dict跟它有什么关系?
  • @wjandrea 我认为这就是让 OP 感到困惑的原因。一个常见的混淆认为它会返回 false,因为 '' 不在 d 中。 (我只是推测)
  • 这和in 运算符不可交换。
  • 您的意思是使用== 吗? in 几乎从不可交换。唯一的例外是 ==True

标签: python string dictionary


【解决方案1】:

因为它正在搜索字符串'a',如果你问一个空字符串是否在一个非空字符串(或一个空字符串)中,它会返回true。

你真正要问的是:

'' in 'a'
Out: True  # Notice that 'a' is the same as '' + 'a'

'a' in ''
Out: False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多