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

the*_*t_1 1 python

在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
Run Code Online (Sandbox Code Playgroud)

返回相同的列表(最后两个网址仍然没有尾部斜杠)

['http://google.com/somedirectory/', 'http://google.com/someotherdirectory/', 'http://google.com/anotherdirectory', 'http://google.com/yetanotherdirectory']
Run Code Online (Sandbox Code Playgroud)

为什么不工作?有任何想法吗?

谢谢 :)

aso*_*uin 9

您的更改不起作用的原因是,当您说url = url + "/"这不会url在列表中就地编辑时.如果你想这样做,你可能会更好地使用enumerate:

for i, url in enumerate(url_list):
    if url[len(url)-1] != "/":
        url_list[i] = url + "/"

print url_list
Run Code Online (Sandbox Code Playgroud)

我们可以通过改为url[len(url)-1]to来进一步改变url[-1],这是指最后一个字符.

但是,虽然我们在这里,为什么不使用.endswith()和列表理解?

url_list = [u if u.endswith('/') else u + '/' for u in url_list]
Run Code Online (Sandbox Code Playgroud)