[英]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_IDS
和PLAYER_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.