2024-09-28 22:10:19 发布
网友
我想知道是否有办法将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']
但我想要的是第一个结果,而不是最后一个
我猜你想要这样的东西
lst = [1,2,3,4,5]
所以你想得到1,第一个元素。你可以做lst_saved = lst[0]
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
这是你想要的吗
我猜你想要这样的东西
所以你想得到1,第一个元素。你可以做
lst_saved = lst[0]
但是如果您想使用循环并获取第一个元素,您可以使用
但那是。。。可怕的
您是只想要第一个元素,还是尝试完成循环然后访问第一个元素
无论哪种方式,我都会避免循环,并做其他事情
对于前者,您可以忽略列表的其余部分,因为“list[0]”语法只会选择列表中的第一项:
或者,我建议使用列表连接,这样就不会在每次循环时覆盖变量。你可以通过多种方式实现同样的目标,但我会这样做:
你可以这样做
这是你想要的吗
相关问题 更多 >
编程相关推荐