2013-05-13 560 views
0

有关于使用Python在列表中查找字符串的问题。 首先,我使用xlrd打开我的Excel文件,并创建一列的列表。本专栏是我想要使用的所有社区。 接下来我有另一个社区的文件,我只想使用那些我以前打开的excel文件中存在的社区。不久,我做了一段以下代码:使用xlrd列表;查找列表中的字符串

import xlrd 
book = xlrd.open_workbook("C:\Users\Yannick\Desktop\MASTERPROEF\Bestanden_LAMBIT\Excel_Files\From_A\ANTWERP_CORRECT.xls") 
sh = book.sheet_by_index(0) 
gemeente = 'CELLES' 
rl = sh.col_values(4,start_rowx=1) 
print rl 
if gemeente in rl: 
    print "OK" 

但它给出了一个问题。它打印出'OK',意思是'CELLES'与列表中的一个名为'COURCELLES'的社区相关联(我知道是因为'CELLES'不在列表中,因此当python搜索'CELLES'列表时,它会给出与'COURCELLES'正面匹配有没有人有一个想法如何搜索100%完全相同的匹配?所以'CELLES'永远不会与'COURCELLES'链接,仅仅因为字符串的一部分是相同的?

回答

0

使用==,而不是in在您的比较:

if gemeente == rl: 

in运营商是一个成员资格测试和回报:

真,如果S的产品等于x,否则返回False

虽然==的两个值进行比较(在你的情况str)对象。有关comparisons的更多信息。

+0

我试过这样做,但是当我搜索一个肯定在列表中的东西时,它什么也不给。因此,当使用该行搜索列表时,找不到匹配项。 : -/ – NYannickske 2013-05-13 14:44:12

+0

@ user8608尝试使用[strip()]从你的'rl'值中删除空格(http://docs.python.org/2/library/string.html#string.strip) – Bryan 2013-05-13 14:45:39

+0

它仍然不起作用使用条。 'COURCELLES'列表中,'CELLES'不在列表中。 仍然Python说'CELLES'在列表中,因为它是'COURCELLES'的一部分。 通过使用==而不是'in',没有记录被返回。但即使是正确的比赛也不存在。 :s – NYannickske 2013-05-13 14:51:11

相关问题