gpt4 book ai didi

python - 努力理解 python 中的这个 'advanced' for 循环

转载 作者:行者123 更新时间:2023-11-30 23:18:00 25 4
gpt4 key购买 nike

我知道如何执行基本的 for 循环,但我很难理解此代码片段中的 for 循环。我正在寻找一种方法来查找列表中的子字符串并获取索引(这样我就可以获取该字符串并对其进行切片 - 在本示例中,鉴于有一个列表项 X 分钟[s],提取值 25)。

这段代码可以工作并返回 3,但我很难理解 i for i 等 - 我只处理过以 for 开头的 for 循环。注意我没有定义 i 或 s。我确实理解枚举。

请注意,可能还有其他方法可以做到这一点,但是当我开始这条路时,我意识到我不理解我发现的许多与下面的 for 循环类似的示例,所以我现在专注于理解这种方法。

非常感谢提前的解释

uptime list = ['routerX uptime is 2 weeks', '6 days', '4 hours', '25 minutes']

min_index = [i for i, s in enumerate(uptime_list) if 'minute' in s]

最佳答案

这里的第一项,i ,是循环每次迭代返回的内容(假设条件为真 - 稍后会详细介绍)。

第二部分,for i, s in enumerate(uptime_list) enumerate函数会将字符串列表转换为可以迭代的元组列表,如下所示:

>>> for x in enumerate(uptime_list): print(x)
(0, 'routerX uptime is 2 weeks')
(1, '6 days')
(2, '4 hours')
(3, '25 minutes')

然后,循环中的每次迭代都会发生多重赋值。例如,如果您这样做 x,y = 0,1然后x将是 0 和 y将为 1。唯一的区别是,在本例中,元组来自 enumerate函数并被分配给is .

最后,最后一部分,if 'minute' in s只会导致第一个i当条件为真时返回(即,当“分钟”位于当前正在查看的 s 变量中时)。如果将第二项添加到 uptime_list包含字符串“分钟”,min_index然后将包含多个数字,因为列表中的多个元素的条件都为 true。

关于python - 努力理解 python 中的这个 'advanced' for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27007394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com