簡體   English   中英

用於變量 URL 的循環列表 Python

[英]For Loop List Python for Variable URL

因此,如果我想打印 url 頁面的內容,或者只是循環瀏覽多個 URL 並且只更改 URL 的幾個部分,我該怎么做。 鑒於以下情況:

如果我知道任何玩家的格式通常如下,ID 和最后一部分減去幾個星期:格式如下:

http://espn.go.com/mlb/player/_/id/31000/brad-brach

假設我知道每個玩家的 ID 和姓名:

PLAYER_NAME = ['brad-brach','oliver-drake',...]
PLAYER_ID = ['31000','31615',...]
for i in PLAYER_ID:
url = 'http://espn.go.com/mlb/player/_/id/'+PLAYER_ID[i]+/'+PLAYER_NAME[i]

只要我們知道 PLAYER_ID 和 PLAYER_NAME 中的所有這些球員,就盡我們所能。

我如何遍歷所有 PLAYER_ID 和 PLAYER_NAME 而沒有得到

類型錯誤:列表索引必須是整數,而不是 str

我知道 url 是一個列表,其中的內容 PLAYER_ID[0] 將是一個字符串。 我在這里缺少什么?

按索引從列表中選擇一個項目而不是另一個列表的字符串,PLAYER_NAME['31000']?!

PLAYER_NAME = ['brad-brach','oliver-drake',...]
PLAYER_ID = ['31000','31615',...]
for i in xrange(len(PLAYER_NAME)):
    url = 'http://espn.go.com/mlb/player/_/id/{}/{}'.format(PLAYER_ID[i], PLAYER_NAME[i])

對於更優雅的解決方案,請使用 zip,感謝@Pynchia ;)

PLAYER_NAME = ['brad-brach','oliver-drake',...]
PLAYER_ID = ['31000','31615',...]
URL_PATTERN = 'http://espn.go.com/mlb/player/_/id/{}/{}'
for p_name, p_id in zip(PLAYER_NAME, PLAYER_ID):
    url = URL_PATTERN.format(p_id, p_name)

for something in container會給你for something in container每件物品; 這是一種非常干凈的迭代方式:

>>> for i in PLAYER_ID:
...     print i
31000
31615

當您使用PLAYER_ID[i] ,您真正想要的是索引。 您可以通過枚舉列表中的每個元素來獲得它:

>>> for i, element in enumerate(PLAYER_ID):
...     print i, element
0 31000
1 31615

但是,您實際上並不需要索引,因為您已經有了一種獲取玩家 ID 的簡潔方法。

正如我在評論中提到的,更好的名字是PLAYER_IDSPLAYER_NAMES ,這樣:

>>> for PLAYER_NAME, PLAYER_ID in zip(PLAYER_NAMES, PLAYER_IDS):
...     print PLAYER_NAME, PLAYER_ID
brad-brach 31000
oliver-drake 31615

暫無
暫無

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

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