Skip to main content
 首页 » 编程设计

python之将列表中的 URL 格式化为在 python 中都有一个尾部斜杠

2025年05月04日8三少

在 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]