在 stackoverflow 上有一些与此类似的问题,但没有一个完全符合我的要求,我的各种尝试似乎都失败了。
我有一个 url 列表,有些有尾部斜线,有些没有...我想检查它们并为那些没有的添加斜线。
url_list = ['http://google.com/somedirectory/', 'http://google.com/someotherdirectory/', 'http://google.com/anotherdirectory', 'http://google.com/yetanotherdirectory']
for url in url_list:
if url[len(url)-1] != "/":
url = url + "/"
else:
url = url
print url_list
返回相同的列表(最后两个 url 仍然没有尾部斜杠)
['http://google.com/somedirectory/', 'http://google.com/someotherdirectory/', 'http://google.com/anotherdirectory', 'http://google.com/yetanotherdirectory']
为什么它不工作?有任何想法吗?
谢谢:)
请您参考如下方法:
您的更改不起作用的原因是当您说 url = url + "/" 这不会在列表中就地编辑 url .如果你想这样做,最好使用 enumerate:
for i, url in enumerate(url_list):
if url[len(url)-1] != "/":
url_list[i] = url + "/"
print url_list
我们可以通过将 url[len(url)-1] 更改为指向最后一个字符的 url[-1] 来进一步整理。
但是当我们这样做的时候,为什么不使用 .endswith() 和列表理解呢?
url_list = [u if u.endswith('/') else u + '/' for u in url_list]
