Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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_List_Algorithm - Fatal编程技术网

Python 查找满足特定属性的元素对

Python 查找满足特定属性的元素对,python,list,algorithm,Python,List,Algorithm,如果给出了输入[s1,…,sn],并且也给出了属性p,则程序应输出满足该p的连续对 例如,如果p是该对中两个元素的总和应小于20,则输入[1,10,29,17]应输出[(1,10)],因为它是唯一满足该p的连续对 为了简单起见,我们假设检查属性p是常数时间。一个简单的解决方案是循环列表,使其为O(n) 例如在python中 def(ls,P:可调用): r=[] 对于范围内的i(透镜(ls)-1): 如果P(ls[i],ls[i+1]): r、 追加((ls[i],ls[i+1])) 返回r 断

如果给出了输入[s1,…,sn],并且也给出了属性p,则程序应输出满足该p的连续对

例如,如果p是该对中两个元素的总和应小于20,则输入
[1,10,29,17]
应输出
[(1,10)]
,因为它是唯一满足该p的连续对

为了简单起见,我们假设检查属性p是常数时间。一个简单的解决方案是循环列表,使其为O(n)

例如在python中

def(ls,P:可调用):
r=[]
对于范围内的i(透镜(ls)-1):
如果P(ls[i],ls[i+1]):
r、 追加((ls[i],ls[i+1]))
返回r

断言f([1,10,29,17],lambda x,y:x+yNo,没有。由于您将序列和属性都作为抽象实体,因此没有可以用来避免基本要求的固有信息:我们必须检查列表中的每个元素。这使得O(N)成为理论最小值