python - 使用列表中其他值的函数过滤 python 中的列表。

标签 python list function filter

counts = misc. array

    for i in counts:
        if i < "(sum of the two integers next to i)/4"
            return -1

我想做的是将列表中所有小于其两个邻居平均值一半的值设置为 -1。即对于列表 [10., 20., 10., 25., 30.] 如果 i=3 那么我想看看 10 是否小于 (20+25)/4 因为那是 45/4 > 10然后我想将 10 设置为 -1。然后,我将过滤列表中所有 >= 0 的值。

由于您应该从 i+1 开始,因为这个过程不适用于第一个值,然后您应该以 -1 结束,因为这个过程不适用于最后一个值,这使情况变得更加复杂。任何帮助将不胜感激。

最佳答案

您可以从this answer 借用滑动窗口生成器| ,并像这样使用它:

out = [y if y >= (x+z)/4. else -1 for x,y,z in window(l, 3)]

l 是您的列表。

这会切断第一个和最后一个元素。如果您愿意,可以很容易地对它们做一些不同的事情(例如设置为 -1)。

关于python - 使用列表中其他值的函数过滤 python 中的列表。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15453348/

相关文章:

Python 从列表中过滤/删除 URL

c# - 检查字符串是否包含列表(字符串)中的元素

java - 根据接口(interface)信息创建列表

python - 程序如何在python中的两个函数之间进行选择?

python2.7 : matplotlib in jupyter notebook can't use qt

python - 在 virtualenv 中存在 cv2 的 ImportError

python - 带有groupby的 Pandas 数据框滚动窗口

python - Flask-Security 的上下文处理器的返回值是如何使用的?

javascript - 使用 JavaScript 通过迭代表来计算总价

python - 如何编写一个看起来像每个 function_name 都有函数名称和变量参数列表的函数