检查字符串元素是否存在于使用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'
谁能帮我在这里?
答
尝试以下操作:
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
当你检查列表中是否存在字符串,除非您尝试匹配的字符串也包含它们,否则不需要引号。
答
您对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
这样你避免与再版
问题是什么问题呢?你能给出与你的问题有关的小功能代码吗?什么扩展名是? – joaquin 2011-04-22 23:39:19
什么是扩展名? – 2011-04-22 23:39:37