
正文
[问与答]为什么 'a' in ('abc') 是True 而 'a' in ['abc'] 是False呢?
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Why is ‘a’ in (‘abc’) True while ‘a’ in [‘abc’] is False? 原文链接
问
在使用解释器的时候,表达式'a' in ('abc') 返回是True,而 'a' in ['abc'] 返回的是Fasle, 有人可以解释这里发生了什么吗?
答
这个问题可能是很多python 新手会有的疑惑, 到底是为啥来着呢?其实这里主要要搞明白的是几个点
('abc')是不是一个元组 ?('abc')到底是什么?'a'是['abc']的一个元素吗?
In [1]: 'a' in ('abc')Out[1]: TrueIn [2]: ('abc')Out[2]: 'abc'In [3]: ('abc') == 'abc'Out[3]: TrueIn [4]: 'a' in ['abc']Out[4]: FalseIn [5]: 'a' in ['abc'][0]Out[5]: TrueIn [6]: ['abc'][0]Out[6]: 'abc'
看完上面的代码其实就应该明白了
('abc')其实就是'abc', 所以'a'当然在'abc'中了('abc')不是元组,元组的写法应该是('abc', ), 刚接触python的人有时候会忘了写那么一个逗号。['abc']是个list类型,'abc'只是其中一个元素,'a'当然不等于'abc'啦,所以返回就是False['abc'][0]其实就是'abc','a' in 'abc'当然是True
记住这个小例子,对一个元素的元组的写法就不容易忘了。








