python - 如何获取项目在列表中的位置?

我正在迭代一个列表,如果它满足某个条件,我想打印出该项目的索引。我该怎么做?

例子:

testlist = [1,2,3,5,3,1,2,1,6]
for item in testlist:
    if item == 1:
        print position

最佳答案

嗯。这里有一个带有列表理解的答案,但它消失了。

这里:

 [i for i,x in enumerate(testlist) if x == 1]

例子:

>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]

更新:

好的,你想要一个生成器表达式,我们将有一个生成器表达式。这是列表推导,在一个 for 循环中:

>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
...     print i
... 
0
5
7

现在我们将构建一个生成器...

>>> (i for i,x in enumerate(testlist) if x == 1)
<generator object at 0x6b508>
>>> for i in (i for i,x in enumerate(testlist) if x == 1):
...     print i
... 
0
5
7

很巧妙,我们可以将它分配给一个变量,然后从那里使用它...

>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
... 
0
5
7

想想我曾经写过 FORTRAN。

https://stackoverflow.com/questions/364621/

相关文章:

linux - 如何从命令行获取 nvidia 驱动程序版本?

python - 如何删除 Python 中的前导空格?

python - 转置一维 NumPy 数组

python - 在 Alpine Linux 上安装 Pillow 时没有这样的文件或目录 "li

python - 创建用 NaN 填充的 numpy 矩阵

windows - 使用什么字符将项目放在字母列表的末尾?

python - 如何在 Python 中列出目录的内容?

linux - 工控机性能: Named Pipe vs Socket

linux - 如果指向的文件被移动或删除,Linux 上打开的文件句柄会发生什么

python - 替换大于某个值的 Python NumPy 数组的所有元素