在 python for 循环中一次运行 3 个变量。
Posted
技术标签:
【中文标题】在 python for 循环中一次运行 3 个变量。【英文标题】:Run 3 variables at once in a python for loop. 【发布时间】:2015-08-30 09:24:42 【问题描述】:python 2.7 中具有多个变量的 For 循环。
你好,
我不确定该怎么做,我有一个功能可以访问网站并下载 .csv 文件。它以特定格式保存 .csv 文件:name_uniqueID_dataType.csv。这是代码
import requests
name = "name1"
id = "id1"
dataType = "type1"
def downloadData():
URL = "http://www.website.com/data/%s" %name #downloads the file from the website. The last part of the URL is the name
r = requests.get(URL)
with open("data/%s_%s_%s.csv" %(name, id, dataType), "wb") as code: #create the file in the format name_id_dataType
code.write(r.content)
downloadData()
代码下载文件并完美保存。我想在每次使用这三个变量的函数上运行一个 for 循环。变量将被写成列表。
name = ["name1", "name2"]
id = ["id1", "id2"]
dataType = ["type1", "type2"]
每个列表中将列出 100 多个不同的项目,每个变量中的项目数量相同。有没有办法在 python 2.7 中使用 for 循环来实现这一点。在一天的大部分时间里,我一直在做这方面的研究,但我找不到办法。请注意,我是 python 新手,这是我的第一个问题。任何帮助或指导将不胜感激。
【问题讨论】:
所以name, id, dataType
被重复了很多次?你想要这些清单吗?
【参考方案1】:
zip 列表并使用 for 循环:
def downloadData(n,i,d):
for name, id, data in zip(n,i,d):
URL = "http://www.website.com/data/".format(name) #downloads the file from the website. The last part of the URL is the name
r = requests.get(URL)
with open("data/__.csv".format(name, id, data), "wb") as code: #create the file in the format name_id_dataType
code.write(r.content)
然后在调用时将列表传递给您的函数:
names = ["name1", "name2"]
ids = ["id1", "id2"]
dtypes = ["type1", "type2"]
downloadData(names, ids, dtypes)
zip 将按索引对您的元素进行分组:
In [1]: names = ["name1", "name2"]
In [2]: ids = ["id1", "id2"]
In [3]: dtypes = ["type1", "type2"]
In [4]: zip(names,ids,dtypes)
Out[4]: [('name1', 'id1', 'type1'), ('name2', 'id2', 'type2')]
所以第一个迭代名称、id 和数据将是('name1', 'id1', 'type1')
等等..
【讨论】:
这就像一个魅力......非常感谢帮助。以上是关于在 python for 循环中一次运行 3 个变量。的主要内容,如果未能解决你的问题,请参考以下文章