首页 > 解决方案 > 将枚举用于“单行循环”

问题描述

我有一个类似的清单

my_id = 3

Word IDs: [None, 0, 1, 2, 3, 3, 3, 4, None]

我想列出上面列表中的所有索引,它们的对应值等于 my_id

我想写一个单行for循环。这是行不通的。有没有办法把它写成“单行for循环”?

我的方式:

list_of_word_ids = [i for enumerate(i,_id) in inputs if _id == id_word ]

在这种情况下,我想要的输出是

4、5、6

标签: pythonpython-3.xlistfor-loopenumerate

解决方案


enumerate返回一个带有计数器的元组。您可以解压缩元组并检查秒值是否等于my_id

Word_IDs= [None, 0, 1, 2, 3, 3, 3, 4, None]

list_of_word_ids = [i for i,j in enumerate(Word_IDs) if j == my_id]

推荐阅读