我有以下代码:
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 :(得分: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)
您不希望item
成为repr()
的结果,因为字符串上的repr()
会添加引号,例如:
>>> repr("xcodeproj")
"'xcodeproj'"
>>> print repr("xcodeproj")
'xcodeproj'
>>> print "xcodeproj"
xcodeproj
当您检查列表中是否存在字符串时,除非您尝试匹配的字符串也包含它们,否则您不需要引号。
答案 1 :(得分:3)
您对is-string-contained-in-list的测试是正确的。但是,您正在测试是否存在与您预期不同的字符串。您在字符串上调用了repr,因此名称项绑定到字符串"'xcodeproj'"
(而不是字符串"xcodeproj"
)。
答案 2 :(得分: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
答案 3 :(得分:0)
你可以简单地使用:
item = extension.split('/')[0]
print "String: '%s'" % item
if item in self.ignore_dir_extensions:
print "Available: '%s'" %` item
这样可以避免使用repr
的问题