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

0 投票
4 回答
3683 浏览
提问于 2025-04-16 16:16

我有以下这段代码:

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

当你在检查一个字符串是否在列表里时,除非你要匹配的字符串本身也有引号,否则你不想要引号。

撰写回答