问题描述
||
有人可以向我解释以下内容(python 2.7)
来自解析文件的两个字符串号:
\'410.9 \'
\'410.9 \'(注意尾随空格)
A_LIST = [\'410.9 \']
\'410.9\' in \'410.9 \'
True
\'410.9\' in A_LIST
False
解决这个问题没有问题-只是想了解为什么会这样。
谢谢!
解决方法
这是正确的行为,因为:
>>>\'410.9\'==\'410.9 \'
>>>False
当您查看某项商品的会员清单时,您实际上是在做这样的事情:
...
for item in A_LIST:
if item == \'410.9\':
return True
...
, 带有两个字符串检查或子字符串的in
,带有列表的in
检查成员资格。
你想要的是[x for x in A_LIST if \'419\' in x]
, 第一个测试正在测试第一个字符串是否是第二个字符串的子字符串,第二个测试正在测试该字符串是否是给定列表的成员。由于它不完全等于列表的任何成员,因此第二个测试返回false。