Python从列表创建链接

时间:2020-05-14 17:10:09

标签: python list for-loop

我正在尝试根据年份列表创建链接列表,并将其存储在变量“ newlink”中。当我打电话给newlink时,我只会得到列表中的最后一年。除非我只是在for循环中打印(link + i)而不尝试将其存储在变量中。我知道这是基础,但是我找不到我想要的东西。


list = ["2019" , "2020"]

link  = "http://link="

for i in list:
     newlink = (link+i)

print(newlink)
http://link=2020

5 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,那么您要执行以下操作

list = ["2019" , "2020"]
link  = "http://link="
newlinks = []
for i in list:
     newlinks.append(link+i)
print(newlinks)

['http://link=2019','http://link=2020']

附注:我将变量名“ newlink”更改为“ newlinks”,因为它是一个列表。

答案 1 :(得分:1)

“我正在尝试从年份列表中创建链接列表”

您正在做的是遍历年份并在每次迭代中覆盖newlink,因此在循环之后,它仅保留最后的link + year。您需要按照说明将这些结果存储到列表中。

尽管我建议您理解列表,但可以通过多种方式完成。 (也可以考虑使用更具描述性的变量名称,而不要使用任何内置名称)

years = ["2019" , "2020"]
link  = "http://link="

new_links = [link + year for year in years]

或者,您可以在理解中使用str.format,甚至可以将其与map组合

years = ["2019" , "2020"]
make_link  = "http://link={}".format

new_links = [make_link(year) for year in years]
#or
new_links = list(map(make_link, years))

答案 2 :(得分:0)

您将在循环的每次迭代中覆盖newlink。而是创建一个链接列表,并将其填充到循环中。

尝试:

years = ["2019" , "2020"]

link  = "http://link="
links = []
for i in years:
     links.append(link+i)

print(links) # output: ['http://link=2019', 'http://link=2020']

答案 3 :(得分:0)

您应将newlink定义为列表,并将修改后的值添加到列表中

list = ["2019" , "2020"]

link  = "http://link="

newlink = []
for i in list:
     newlink.append(link+i)

答案 4 :(得分:0)

您正在覆盖newlink变量,并且您还说需要链接列表。所以你需要这样做

newlink = [列表中i的链接+ i]

使用列表理解功能,您可以在一行中完成此操作。