我寻求帮助的日子。 我有一个很大的字符串列表,从13225行文本文件创建:
with open(dest_file) as f2:
content_dest = [line.rstrip('\n') for line in f2]
我的搜索字符串是mp
。
检查列表中的mp
失败。列表中的所有项目都是
<type str>
当我遍历列表时,找到了mp
。
我没有看到任何明显(再次)为什么会这样。我在列表索引之后,所以我可以通过访问大列表中我需要的索引来处理索引处的数据。由于我的迭代工作&#39;,我想我的问题是如何获得列表中的&#39; mp&#39;代码实际工作..?和/或为什么列表中没有mp
&#39}工作??非常感谢。
mp = 'r1_crvR_2_29040_-8580_180'
chk = mp in content_dest
print '**', chk
for x in content_dest:
chk = mp in x
if chk:
print 'Found:', mp, x
print type(mp), type(x)
for i in range(0, len(content_dest)):
chk = mp in content_dest[i]
if not chk:
pass
else:
print 'Found:', mp, content_dest[i], i
结果:
** False
Found: r1_crvR_2_29040_-8580_180 Name "r1_crvR_2_29040_-8580_180"
<type 'str'> <type 'str'>
Found: r1_crvR_2_29040_-8580_180 Name "r1_crvR_2_29040_-8580_180" 11846
答案 0 :(得分:0)
在列表或列表项目中搜索存在差异。
例如,a
不在列表中:
>>> L = ['abc', 'xyz']
>>> 'a' in L
False
但它位于列表的一个项目中:
>>> for x in L:
... if 'a' in x:
... print 'found'
...
found
下面:
>>> 'a' in L
相当于:
chk = mp in content_dest
并循环到上面的循环。
答案 1 :(得分:0)
mp in list
这适用于:检查字符串是否在列表中。 正如我从上面的代码中可以理解的那样,文件中只有一行包含请求的子字符串。这一行是:
Name "r1_crvR_2_29040_-8580_180"
为了便于理解,我将向您展示另一个例子:
my_list = ["abc"]
check = 'a' in my_list
check
应该是什么结果?
是的,当然,因为我们的列表中没有这个字符串a
。
为了验证是否存在一些由我们的字符串组成的字符串,我们可以这样做:
double_check = any(['a' in x for x in my_list])
double_check将告诉我们列表中是否有一些由请求的字符串组成的字符串。