Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从阵列中选择特定点_Python - Fatal编程技术网

Python 从阵列中选择特定点

Python 从阵列中选择特定点,python,Python,这是一项新任务: 我在从数组中选择数据时遇到以下问题 a = [1100, 1140, 1258, 1800, 2100, 2365] 我想从中选择严格低于2000的值和严格高于2000的值。。。在这个例子中是1800和2100 如果有任何帮助,我们将不胜感激。我将对数组进行排序,然后当您发现第一个值高于2000时,将该值与上一个值进行排序。我将对数组进行排序,然后当您发现第一个值高于2000时,将该值与上一个值进行排序。这就是您需要的吗 >>> a = [1100, 114

这是一项新任务: 我在从数组中选择数据时遇到以下问题

a = [1100, 1140, 1258, 1800, 2100, 2365]
我想从中选择严格低于2000的值和严格高于2000的值。。。在这个例子中是1800和2100


如果有任何帮助,我们将不胜感激。

我将对数组进行排序,然后当您发现第一个值高于2000时,将该值与上一个值进行排序。

我将对数组进行排序,然后当您发现第一个值高于2000时,将该值与上一个值进行排序。

这就是您需要的吗

>>> a = [1100, 1140, 1258, 1800, 2100, 2365]
>>> max(x for x in a if x < 2000)
1800
>>> min(x for x in a if x > 2000)
2100
这种方法在2元组列表中搜索极值,例如
[(1100,'r'),(1140,'s'),…]
。这意味着为了搜索极值,如果列表
a
中的值相等,则考虑列表
b
中的值,cf

只想让您知道:为了获得与第一种方法完全相同的行为,即在极值搜索期间仅计算
a
中的值,您可以使用

from operator import itemgetter
from itertools import izip
min(((a,b) for a,b in izip(a,b) if a > 2000)), key=itemgetter(0))
这使用项目0,即2元组中的第一个项目,即列表
a
中的值来搜索最小值。

这就是您需要的吗

>>> a = [1100, 1140, 1258, 1800, 2100, 2365]
>>> max(x for x in a if x < 2000)
1800
>>> min(x for x in a if x > 2000)
2100
这种方法在2元组列表中搜索极值,例如
[(1100,'r'),(1140,'s'),…]
。这意味着为了搜索极值,如果列表
a
中的值相等,则考虑列表
b
中的值,cf

只想让您知道:为了获得与第一种方法完全相同的行为,即在极值搜索期间仅计算
a
中的值,您可以使用

from operator import itemgetter
from itertools import izip
min(((a,b) for a,b in izip(a,b) if a > 2000)), key=itemgetter(0))

这将使用项0,即两元组中的第一个项,即列表
a
中的值来搜索最小值。

如果您真正指的是2000以下的最高值和2000以上的最低值,则可以通过

In [3]: max([x for x in a if x < 2000])
Out[3]: 1800


In [4]: min([x for x in a if x > 2000])
Out[4]: 2100
[3]中的
max([x表示x,如果x<2000])
出[3]:1800
在[4]中:最小值([x代表x,如果x>2000])
Out[4]:2100
这是怎么回事?列表
[x代表x,如果x<2000]
选择所有小于2000的元素。然后,只需寻找最大值


如果您知道列表已经排序,那么可能有更有效的方法

如果你真的是指2000以下的最高值和2000以上的最低值,那么你可以通过

In [3]: max([x for x in a if x < 2000])
Out[3]: 1800


In [4]: min([x for x in a if x > 2000])
Out[4]: 2100
[3]中的
max([x表示x,如果x<2000])
出[3]:1800
在[4]中:最小值([x代表x,如果x>2000])
Out[4]:2100
这是怎么回事?列表
[x代表x,如果x<2000]
选择所有小于2000的元素。然后,只需寻找最大值


如果您知道列表已经排序,那么可能有更有效的方法

如果您正在使用NumPy:

a[a>2000].min()
a[a<2000].max()

如果您使用的是NumPy:

a[a>2000].min()
a[a<2000].max()


我不完全清楚你想达到什么目的。到目前为止,您的代码没有意义(compute.CD();a.append(CD)部分)。请尝试重新表述您的问题,或者其他人可以帮助。我简化了它,我希望它更清楚。我认为您仍然缺少一些描述。。。“严格低于”意味着下面所有的价值观,但我不认为这是你的意思。我想你指的是2000年以下的最高值和2000年以上的最低值。@Jan PhilipGehrcke。。。。我希望你仍然可以在这一步上帮助我a=[1100,1140,1258,1800,2100,2365]和b=[1,2,3,4,5,6],所以a中的每个变量都对应于b中的一个变量,所以如果我想找到2000以下的最高值,请使用max([x代表a中的x,如果x<2000])但是我怎样才能打印这个变量,它对应于b。。。所以在这种情况下,我会以1800,4结束,谢谢Appreciated@charlottechahine,我更新了我的答案。我不完全清楚你想达到什么目的。到目前为止,您的代码没有意义(compute.CD();a.append(CD)部分)。请尝试重新表述您的问题,或者其他人可以帮助。我简化了它,我希望它更清楚。我认为您仍然缺少一些描述。。。“严格低于”意味着下面所有的价值观,但我不认为这是你的意思。我想你指的是2000年以下的最高值和2000年以上的最低值。@Jan PhilipGehrcke。。。。我希望你仍然可以在这一步上帮助我a=[1100,1140,1258,1800,2100,2365]和b=[1,2,3,4,5,6],所以a中的每个变量都对应于b中的一个变量,所以如果我想找到2000以下的最高值,请使用max([x代表a中的x,如果x<2000])但是我怎样才能打印这个变量,它对应于b。。。所以在这种情况下,我会以1800,4结束,谢谢Appreciated@charlottechahine,我更新了我的答案。你不需要括号:
[]
genexp和listcomp一样有效。DSM,我只是在查找:-)@AndrewJaffe:python 2.4是在2004年底,或者八年前推出的。就这一点而言,listcomps直到2.0才被引入。也许是
enumerate(a)
,而不是
b=。。。;zip(a,b)
@AndrewJaffe,我认为列表
b
只是长度
len(a)
,可以携带任何值。使用任意值(本例中为字符串)更新了示例。您不需要
[]
括号:genexp与listcomp here.DSM一样工作,我只是在查找:-)@AndrewJaffe:python 2.4于2004年底或八年前推出。就这一点而言,listcomps直到2.0才被引入。也许是
enumerate(a)
,而不是
b=。。。;zip(a,b)
@AndrewJaffe,我认为列表
b
只是长度
len(a)
,可以携带任何值。使用任意值(本例中为字符串)更新了示例。