繁体   English   中英

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

[英]Checking if string element is present in a list with 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)

您不希望itemrepr()的结果,因为字符串上的repr()会添加引号,例如:

>>> repr("xcodeproj")
"'xcodeproj'"
>>> print repr("xcodeproj")
'xcodeproj'
>>> print "xcodeproj"
xcodeproj

当您检查列表中是否存在该字符串时,除非您尝试匹配的字符串也包含引号,否则您不希望使用引号。

您对is-string-contain-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

您可以简单地使用:

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

print "String: '%s'" % item

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

这样您可以避免repr的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM