用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'
有没有人能帮我一下?
4 个回答
0
你可以简单地使用:
item = extension.split('/')[0]
print "String: '%s'" % item
if item in self.ignore_dir_extensions:
print "Available: '%s'" %` item
这样做可以避免与repr相关的问题。
3
你检查字符串是否在列表中的方法是对的。不过,你其实是在检查一个和你想要的字符串不一样的东西。你对你的字符串用了repr这个函数,所以现在item这个名字指向的是字符串"'xcodeproj'"
(也就是带有引号的那个),而不是你想要的字符串"xcodeproj"
(没有引号的那个)。
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
当你在检查一个字符串是否在列表里时,除非你要匹配的字符串本身也有引号,否则你不想要引号。