【发布时间】:2021-02-26 23:20:09
【问题描述】:
我正在尝试编写一个 Python 程序来修复用户列表中提供的所有链接的格式。
每个链接都应该类似于"https://example.com"。所以我使用replace 用新零件替换错误的零件。但是.replace 方法似乎根本不起作用,我很难找出原因。
我正在尝试将其设置为一个函数。这是我的代码:
from re import findall
def get_urls():
# Gets urls from the provided string
urls = input("Stream urls: ").split(",")
for i, url in enumerate(urls):
urls[i] = findall(r'(https?://[^\s]+)', url)
if "https://www." in urls[i]:
urls[i] = urls[i].replace("https://www.", "https://")
elif "www." in urls[i]:
urls[i] = urls[i].replace("www.", "https://")
elif "http://" in urls[i]:
urls[i] = urls[i].replace("http://", "https://")
return urls
print(get_urls())
输出打印回给我,但链接保持不变。我的代码中似乎没有错字或直接的语法错误,因为 IDE 没有报告任何此类错误。
我做错了什么?
【问题讨论】:
-
我正在使用“from re import findall”,所以添加 re.我认为应该没有必要。
-
return urls不应该在循环中。处理完第一个 URL 后返回,其余不变。 -
你的返回在循环内,所以在第一个 url 之后它会返回并且不会处理任何其他 url,你的意思是在循环之外吗?
-
我确实做到了。这发生在我试图从纯粹的悲伤中“猜测”正确的组合时......
标签: python python-3.x for-loop methods replace