Skip to main content
 首页 » 编程设计

Python List Comprehensions之加入 For 循环

2025年05月04日9cyq1162

我正在尝试生成如下 URL:

http://ergast.com/api/f1/2000/qualifying?limit=10000

我正在使用 Python 生成 2000 年到 2015 年的 URL,为此,我编写了以下代码片段:

url = "http://ergast.com/api/f1/" 
year = url.join([str(i) + "/qualifying?limit=10000" + "\n" for i in range(1999, 2016)]) 
print(year) 

输出是:

1999/qualifying?limit=10000 
http://ergast.com/api/f1/2000/qualifying?limit=10000 
http://ergast.com/api/f1/2001/qualifying?limit=10000 
http://ergast.com/api/f1/2002/qualifying?limit=10000 
http://ergast.com/api/f1/2003/qualifying?limit=10000 
http://ergast.com/api/f1/2004/qualifying?limit=10000 
...... 
http://ergast.com/api/f1/2012/qualifying?limit=10000 
http://ergast.com/api/f1/2013/qualifying?limit=10000 
http://ergast.com/api/f1/2014/qualifying?limit=10000 
http://ergast.com/api/f1/2015/qualifying?limit=10000 

如何去掉第一行?我尝试设置范围 (2000, 2016),但同样的事情发生在第一行是 2000 而不是 1999 时。我做错了什么?我该如何解决这个问题?

请您参考如下方法:

您可以为此使用字符串格式:

url = 'http://ergast.com/api/f1/{0}/qualifying?limit=10000' 
 
print('\n'.join(url.format(year) for year in range(2000, 2016))) 
 
# http://ergast.com/api/f1/2000/qualifying?limit=10000 
# http://ergast.com/api/f1/2001/qualifying?limit=10000 
# ... 
# http://ergast.com/api/f1/2015/qualifying?limit=10000 

更新:

根据 OP 在 requests.get 中传递这些 url 的评论:

url_tpl = 'http://ergast.com/api/f1/{0}/qualifying?limit=10000' 
 
# use list coprehension to get all the urls 
all_urls = [url_tpl.format(year) for year in range(2000, 2016)] 
 
for url in all_urls: 
    response = requests.get(url)