繁体   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