检查字符串元素是否存在于使用Python的列表中?

问题描述:

我有以下一段代码:检查字符串元素是否存在于使用Python的列表中?

self.ignore_dir_extensions = ['xcodeproj'] 

item = repr(extension.split('/')[0]) 

print "String: " + item 

if item in self.ignore_dir_extensions: 
    print "Available: " + item 

比方说,我有这样的输出:

String: 'xcodeproj' 

预期输出:

String: 'xcodeproj' 
Available: 'xcodeproj' 

谁能帮我在这里?

+0

问题是什么问题呢?你能给出与你的问题有关的小功能代码吗?什么扩展名是? – joaquin 2011-04-22 23:39:19

+0

什么是扩展名? – 2011-04-22 23:39:37

尝试以下操作:

self.ignore_dir_extensions = ['xcodeproj'] 

item = extension.split('/')[0] 

print "String: " + repr(item) 

if item in self.ignore_dir_extensions: 
    print "Available: " + repr(item) 

你不希望有itemrepr()的结果,因为repr()在一根绳子上会添加引号,例如:

>>> repr("xcodeproj") 
"'xcodeproj'" 
>>> print repr("xcodeproj") 
'xcodeproj' 
>>> print "xcodeproj" 
xcodeproj 

当你检查列表中是否存在字符串,除非您尝试匹配的字符串也包含它们,否则不需要引号。

您对is-string-contained-in-list的测试是正确的。但是,您正在测试是否存在不符合您预期的字符串。您在您的字符串上调用了repr,因此该名称项绑定到字符串"'xcodeproj'"(而不是字符串"xcodeproj")。

我会亲自做:

self.ignore_dir_extensions = ['xcodeproj'] 

item = repr(extension.split('/')[0]) 

print "String: " + item 

try: 
    self.ignore_dir_extensions.index(item) 
    print "Available: " + item 
except: 
    pass 
+0

虽然这并不能解决您的问题,但我会和Croad一起回答。 – Cthos 2011-04-22 23:45:26

,你可以简单地使用:

item = extension.split('/')[0] 

print "String: '%s'" % item 

if item in self.ignore_dir_extensions: 
    print "Available: '%s'" %` item 

这样你避免与再版