2011-04-22 124 views
0

我有以下一段代碼:檢查字符串元素是否存在於使用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

回答

3

嘗試以下操作:

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 

當你檢查列表中是否存在字符串,除非您嘗試匹配的字符串也包含它們,否則不需要引號。

3

您對is-string-contained-in-list的測試是正確的。但是,您正在測試是否存在不符合您預期的字符串。您在您的字符串上調用了repr,因此該名稱項綁定到字符串"'xcodeproj'"(而不是字符串"xcodeproj")。

0

我會親自做:

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

0

,你可以簡單地使用:

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

print "String: '%s'" % item 

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

這樣你避免與再版

相關問題