Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_Numpy_Max - Fatal编程技术网

Python列表。查找所有元素均不为零的最大行

Python列表。查找所有元素均不为零的最大行,python,list,numpy,max,Python,List,Numpy,Max,我有一个python列表,看起来有点像这样: [[0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,90,1,9999,0,0,0,0,0,0,0,00,0], [0,0,0,0,0,0,0,0,0,0,0,0,00,0],[0,0,90,1,9999,1,2,0,0,9999,0,0,00,0].....till about 30 rows] 我需要从这个列表中找到最大行,它有一个9999,或者换句话说,它不是所有元素都为零。请帮我做这个。谢谢 我试过: print max

我有一个python列表,看起来有点像这样:

[[0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,90,1,9999,0,0,0,0,0,0,0,00,0],
[0,0,0,0,0,0,0,0,0,0,0,0,00,0],[0,0,90,1,9999,1,2,0,0,9999,0,0,00,0].....till about 30 rows]
我需要从这个列表中找到最大行,它有一个9999,或者换句话说,它不是所有元素都为零。请帮我做这个。谢谢

我试过:

print max((numpy.where(v1==9999)[0])) 
但是这给了我一些奇怪的错误,比如
'int'object not iterable
或者
numpy.where不接受关键字n
等等

您想要:

idx,row = max(enumerate(lst),key=lambda r: ( sum(r[1])==0, r[0] ) )
next(x for x in reversed(lst) if sum(x) != 0)
其中
lst
是您的列表

或者你想要:

idx,row = max(enumerate(lst),key=lambda r: ( sum(r[1])==0, r[0] ) )
next(x for x in reversed(lst) if sum(x) != 0)

这将返回非“全部为零”行的索引:

以及这些行的最高索引:

maxnonzerorows = max([i for i,j in enumerate(a) if any(j)])

我不这么认为。。。max函数必须找到索引最高的行,但该行的sum==0。@gran\u profaci--您需要更清楚地了解最大行的标准。是的,“max”通常指的是最高值;最高索引(“最后一个”限定项)是一个单独的概念。因此,您可能会注意到,行要么全部为零,要么有一些非零值。我需要找到索引最高的行,该行的sum(row)==0。因此,打印的行必须是最高的非零行。非常感谢你的帮助!的确,我道歉。我必须找到最高的索引值,即具有非零值的最高索引的行。我不愿意尝试解决方案,因为我认为您无法清楚地表达您需要的内容。当你表达你的问题以便理解它时,解决方案将是直接的。你的条件是不明确的:“哪个有9999”和/或“哪个没有所有元素为零”。。。