有没有办法得到for循环的第一个结果?

2024-09-28 22:10:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有办法将for循环的第一个结果保存为变量,而不是最后一个。我想按照https://github.com/ytdl-org/youtube-dl中的代码在youtube上获得搜索的第一个结果。for循环是这样的

for vid in soup.findAll(attrs={'class':'yt-uix-tile-link'}):
    vids = 'https://www.youtube.com' + vid['href']

但我想要的是第一个结果,而不是最后一个


Tags: 代码inhttpsorggithubcomforyoutube
3条回答

我猜你想要这样的东西

lst = [1,2,3,4,5]

所以你想得到1,第一个元素。你可以做lst_saved = lst[0]

但是如果您想使用循环并获取第一个元素,您可以使用

for i in lst:
  lst_saved = i
  break

但那是。。。可怕的

您是只想要第一个元素,还是尝试完成循环然后访问第一个元素

无论哪种方式,我都会避免循环,并做其他事情

对于前者,您可以忽略列表的其余部分,因为“list[0]”语法只会选择列表中的第一项:

what_you_want = 'https://www.youtube.com/' + soup.findAll(attrs={'class':'yt-uix-tile-link'})[0]['href']

或者,我建议使用列表连接,这样就不会在每次循环时覆盖变量。你可以通过多种方式实现同样的目标,但我会这样做:

# first get your list of links
list_of_things = ['https://www.youtube.com/' + vid['href'] for vid in soup.findAll(attrs={'class':'yt-uix-tile-link'}]

# then pick out the first item in your list
what_you_want = list_of_things[0]

你可以这样做

test = 0
for i in range(5):
  if i == 0:
   test = i

这是你想要的吗

相关问题 更多 >