这将是我的示例数据:
lis = ['http://wiki.dbpedia.org/about','http://dbpedia.org/data/Category:Cybercrime.rdf',
'http://dbpedia.org/resource/Stop_Cyberbullying_Day',
'http://dbpedia.org/resource/Category:Cybercrime_in_Canada',
'http://dbpedia.org/resource/Political_repression_of_cyber-dissidents',
'http://creativecommons.org/licenses/by-sa/3.0/']
我使用下面的代码只过滤那些包含http://dbpedia.org/resource/
的URL
c = 'http://dbpedia.org/resource/'
for i in lis:
if i[:27] is c:
print (i)
预期产出应为:
http://dbpedia.org/resource/Stop_Cyberbullying_Day
http://dbpedia.org/resource/Category:Cybercrime_in_Canada
http://dbpedia.org/resource/Political_repression_of_cyber-dissidents'
但是打印NULL
is
运算符检查其操作数的标识。只需将
str.startwith
用于您的简单案例:输出:
代码中有两个问题:
is
进行比较,它比较两个对象的身份,而不是相等。您想改用==
李>'http://dbpedia.org/resource/'
)长度为28个字符,但您正在将其与i
的前26个字符进行比较。将i[:27]
替换为i[:29]
,或者更好地使用i[:len(c)]
使其使用c
字符串动态更改李>尽管如此,您应该使用
str.startswith()
,它基本上为您完成了所有这些:相关问题 更多 >
编程相关推荐