簡體   English   中英

如何從在循環中串聯的URL創建列表?

[英]How to create a list from urls that was concatenated in a loop?

我的目標是將所有URL都放入列表中。 我在遍歷數字列表后將它們串聯起來,例如:

我編寫的代碼:

number_list = [1, 2, 3]
url_list = []

for i in number_list:
  url_string_concat = 'www.example.url/=' + str(i)
  url_list.append(url_string_concat)

  print(url_list)

我期望輸出為:

  url_list = ['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']

但是,我得到的結果是:

['www.example.url/=1'] ['www.example.url/=1', 'www.example.url/=2'] ['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']

我在這里缺少什么嗎?

因為您每次迭代都調用print

number_list = [1, 2, 3]
url_list = []

for i in number_list:
    url_string_concat = 'www.example.url/=' + str(i)
    url_list.append(url_string_concat)

print(url_list)

輸出

['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']

或者您可以通過列表理解來簡化代碼:

url_list = ['www.example.url/={}'.format(i) for i in range(1, 4)]

輸出:

url_list
['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']

您的print語句在每次迭代中都會出現。 這也將在迭代結束時添加一條print語句-這是發生預期結果的地方:

number_list = [1, 2, 3]
url_list = []
for i in number_list:
    url_string_concat = 'www.example.url/=' + str(i)
    url_list.append(url_string_concat)
    print("Running num %s ==> %s" % (i, url_list))


print ("Done ==> %s" % url_list)

然后您會得到:

Running num 1 ==> ['www.example.url/=1']
Running num 2 ==> ['www.example.url/=1', 'www.example.url/=2']
Running num 3 ==> ['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']
Done ==> ['www.example.url/=1', 'www.example.url/=2', 'www.example.url/=3']

您的代碼還可以,該列表已正確連接,但是您在每次迭代時都將其打印出來,因此可以看到它的增長。 @frankegoesdown向您顯示了正確的代碼。 您還可以使用列表推導

url_list = ['www.example.url/=' + str(i) for i in range(1, 4)]
print(url_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM