【问题标题】:How to use filter() to get the location of the filtered data instead of the value?如何使用 filter() 来获取过滤数据的位置而不是值?
【发布时间】:2018-12-09 12:09:19
【问题描述】:

我正在尝试构建一个图形生成器函数,该函数需要列表中的数据位置我想使用 python 的内置过滤器函数来获取相关数据的位置列表而不是它们的值。有可能吗?

我知道还有其他方法可以实现这一点,但是否可以使用 Filter() 函数做到这一点?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

您可以使用enumerate 将您的列表变成一个包含两项元组的列表,每个元组的第一项是该项的位置(我们通常称之为位置或索引),第二项是item 是原始列表中该位置的项目。

以下代码过滤[4, 1, 3, 5, 3] 列表中值大于3 的项目并返回这些项目的位置。

a = [4, 1, 3, 5, 3]
print(list(map(lambda i: i[0], filter(lambda i: i[1] > 3, enumerate(a)))))

这个输出:

[0, 3]

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 2020-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2022-06-11
    • 2022-09-27
    • 2020-09-18
    • 2014-05-11
    相关资源
    最近更新 更多