定义列表,并带有“枚举”解释[重复]

问题描述 投票:-1回答:3

此问题已经在这里有了答案:

我遇到了这段有用的代码,返回了列表l的最小值的索引

[i for i, x in enumerate(l) if x == min(l)]

有人可以通过这种创建列表的方式和/或过程来帮助我吗?我熟悉[i*2 for i in l]类型代码,但不熟悉逗号的作用以及定义新变量x的原因是什么。

非常感谢

python list comma enumerate
3个回答
0
投票

enumerate函数返回一个大小为2的元组,第一个为索引,第二个为列表中该索引处的元素。我们可以将元组分配给以下形式的多个变量:

>>> i, v = (1, 2)
>>> i
1
>>> v
2

因此,在您的示例中,它循环遍历列表,并针对列表中的每个索引和值,检查该值是否等于列表中的最小值。如果是这样,它将i附加到列表理解中。

当然,列表理解力等于:

[l.index(min(l))]

0
投票

Enumerates返回一个元组索引,它是列表l的元素,您只是告诉python将元组的第一个元素(索引)分配给i,每次调用Next时您的元素都分配给x。


0
投票

此列表创建方法称为“列表理解”,同时使用枚举“ i”中的“ i”,x表示索引号(或序列号,如果您愿意的话),x表示列表中的迭代(例如在列表= [1,2,3,4]中,每个数字都是一个迭代)

因此,当代码[如果x == min(l)传递给i,i,i,inumerate(l)中的i,]时,它将创建一个索引列表,该索引具有最小的迭代值,因为函数min()为使用。

© www.soinside.com 2019 - 2024. All rights reserved.