python '' in 'abc' 为什么会返回True

print('' in 'abc') # True

'abc'中并没有空字符串存在,为什么还是返回的True呢?

阅读 3.7k
3 个回答

从集合的角度上讲,集合{a, b, c}的全部子集有∅、{a}、{b}、{c}、{a, b}、{b, c}、{a, c}、{a, b, c}共8个;但字符串还需要考虑到其中字符的顺序问题,因此'ac' in 'abc'应该返回False,而其余的7个'' in 'abc''a' in 'abc''b' in 'abc''c' in 'abc''ab' in 'abc''bc' in 'abc''abc' in 'abc'都应该返回True。

空字符就是甚至不包含空格的字符串,那么也不能说字符串不包含空字符串啊,'abc' 没有abc它还有空字符串

这样是逻辑自洽的,思考下面的语句

'' in ''  # True
'abc'[0:0] # ''
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题