python 2.7 在列表中查找失败,但遍历列表找到它
python 2.7 find in list fails, but iterating over list finds it
我寻求帮助的一天。
我有一个很大的字符串列表,由一个 13225 行的文本文件创建:
with open(dest_file) as f2:
content_dest = [line.rstrip('\n') for line in f2]
我的搜索字符串是 mp
。
在列表中检查 mp
失败。列表中的所有项目都是
<type str>
当我遍历列表时,找到 mp
。
我(再次)看不出有什么明显的原因。我在一个列表索引之后,所以我可以通过访问大列表中我需要的索引来弄乱索引处的数据+一些东西。由于我的迭代 'work',我想我的问题是如何让 'mp in list' 代码实际工作..? And/or 为什么列表中的 mp
不起作用??非常感谢。
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
在列表中搜索或在列表项中搜索是不同的。
例如,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
你的循环到上面的循环。
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 将显示我们的列表中是否有某个字符串由请求的字符串组成。
我寻求帮助的一天。 我有一个很大的字符串列表,由一个 13225 行的文本文件创建:
with open(dest_file) as f2:
content_dest = [line.rstrip('\n') for line in f2]
我的搜索字符串是 mp
。
在列表中检查 mp
失败。列表中的所有项目都是
<type str>
当我遍历列表时,找到 mp
。
我(再次)看不出有什么明显的原因。我在一个列表索引之后,所以我可以通过访问大列表中我需要的索引来弄乱索引处的数据+一些东西。由于我的迭代 'work',我想我的问题是如何让 'mp in list' 代码实际工作..? And/or 为什么列表中的 mp
不起作用??非常感谢。
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
在列表中搜索或在列表项中搜索是不同的。
例如,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
你的循环到上面的循环。
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 将显示我们的列表中是否有某个字符串由请求的字符串组成。