在python中可以使用in符号判断指定的元素是否存在于列表中,但我发现元组和数组存在区别,下面是详细实验结果。
>>> '75271.com' in ['haotu.net','75271.com'] True >>> '75271.com' in ('haotu.net','75271.com') True >>> '75271.com' in ['75271.com/codes','haotu.net'] False >>> '75271.com' in ('75271.com/codes','haotu.net') False >>> '75271.com' in ['75271.com/codes'] False >>> '75271.com' in ('75271.com/codes') True >>> '75271.com' in ['75271.com/codes'] False >>> '75271.com' in ('75271.com/codes',) False
前面5条测试都符合我们的预期,只有最后一条,将数组换成元组后,在元组中只有一个元素的时候,python居然是把元组当成了字符串处理,不知道为什么会有这样的处理方式,但开发的时候却要注意,只用in语句判断数组中是否存在制定元素时,最好用[]的数组,而非元组
修正:经过网友指正,发现还是我自己没有搞清楚,python中当元组中只有一个元素时,也要在元素后面加上逗号,否则会把括号当成运算符处理,也就是最后看到的这种就没问题了。