我正在尝试构建一个图形生成器功能,该功能要求列表中数据的位置。我想使用python的内置过滤器功能获取相关数据位置的列表,而不是其值。可以这样做吗?
我知道还有其他方法可以实现此目的,但是使用Filter()函数可以做到吗?
答案 0 :(得分:2)
您可以使用enumerate
将列表变成两个项目元组的列表,每个元组的第一项是项目的位置(我们通常将其称为位置或索引),并且第二个项目是该位置原始列表中的项目。
以下代码为值大于3的项目过滤[4, 1, 3, 5, 3]
的列表,并返回这些项目的位置。
a = [4, 1, 3, 5, 3]
print(list(map(lambda i: i[0], filter(lambda i: i[1] > 3, enumerate(a)))))
这将输出:
[0, 3]