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

我正在遍历列表,如果满足特定条件,我想打印出该项目的索引。我该怎么做?


例:


testlist = [1,2,3,5,3,1,2,1,6]

for item in testlist:

    if item == 1:

        print position


莫回无
浏览 475回答 3
3回答

千巷猫影

嗯 这里有一个关于列表理解的答案,但是它消失了。这里:&nbsp;[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]:...&nbsp; &nbsp; &nbsp;print i...&nbsp;057现在我们将构建一个生成器...>>> (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):...&nbsp; &nbsp; &nbsp;print i...&nbsp;057令人高兴的是,我们可以将其分配给变量,然后从那里使用它...>>> gen = (i for i,x in enumerate(testlist) if x == 1)>>> for i in gen: print i...&nbsp;057并且以为我曾经写过FORTRAN。

呼如林

接下来呢?print testlist.index(element)如果不确定要查找的元素是否确实在列表中,则可以添加初步检查,例如if element in testlist:&nbsp; &nbsp; print testlist.index(element)要么print(testlist.index(element) if element in testlist else None)或“ pythonic方式”,我不太喜欢它,因为代码不太清晰,但有时效率更高,try:&nbsp; &nbsp; print testlist.index(element)except ValueError:&nbsp; &nbsp; pass

尚方宝剑之说

使用枚举:testlist = [1,2,3,5,3,1,2,1,6]for position, item in enumerate(testlist):&nbsp; &nbsp; if item == 1:&nbsp; &nbsp; &nbsp; &nbsp; print position
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python