gpt4 book ai didi

python - 仅选择低于特定阈值的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:07 25 4
gpt4 key购买 nike

假设我有多个值:(左列只是值计数:1、2、3 等;右列是实际值)

1 5.2
2 1.43
3 3.54
4 887
5 0.35

我想要做的是将值从减少到增加(自上而下)重新排序,然后我想让 python 遍历这些值并继续选择值(稍后用作输出)直到它遇到一个等于或高于某个阈值的值。例如:

5 0.35
2 1.43
3 3.54
1 5.2
4 887

比如说,我的阈值是 5.0,所以在这里我希望程序丢弃 1 和 4(高值)并给出 5、2 和 3 作为输出以及它们的相应值。我希望这是有道理的。如果(无论出于何种原因)我的阈值只允许 2 个值,那么作为一个更棘手的技巧我希望它忽略所有内容并给出类似“未找到值”的内容。

我将从中提取它们(值和计数)的文件大致如下所示:

  ID  some: value  another: value another: value another: value another: value another: value 1: 5.2

等等,上面提到的每个值都对应文件中的一个新行。因此,我感兴趣的内容将分别位于第 x 行、第 14 列和第 15 列。

实际的行应该是这样的:

Mod# 2 11494    Chi^2:  1.19608371367   Scale:  0.567691651772  Tin:    1499    Teff:   3400    Luminosity:     568.0   L   M-dot: 4.3497e-08   Tau: 2.44E-01   Dust composition: Fe    IRx1:   0.540471121182

我对 IRx1 及其后面的值感兴趣。

最佳答案

以下解决方案假定数据是作为元组列表读入的。

例如:

[(1,5.2),
(2,1.43),
(3,3.54),
(4,887),
(5,0.35)]

将是问题中示例数据的列表。

def cutoff(threshold, data):
sortedData = sorted(data, key=lambda x: x[1])
finalList = filter(lambda x: x[1] < threshold, sortedData)
return finalList if len(finalList) > 2 else 'No values found'

函数的第一行根据元组第二位的值对列表进行排序。

该函数的第二行然后过滤结果列表,以便仅保留值低于阈值的元素。

如果第三行包含两个以上的元素,则第三行返回结果排序列表,否则返回“未找到值”,这应该完成您正在尝试做的事情,减去文件输入。

关于python - 仅选择低于特定阈值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com