我知道标题有点难理解。对不起,让我解释一下。例如:我们有一个嵌套列表,由4个列表组成,每个列表有3个元素,前两个是字符串(而不是char),第三个是int:
LLList = [ ["A", "B", 30], ["C", "B", 30], ["D", "B", 20], ["D", "L", 60] ]
我想计算“LLList”中元素的数量或返回所有索引(“LLList”中的元素是三元素列表,如[“A”,“B”,30]),其中第三个元素最大,第二个元素为“B”。你知道吗
一种简单的方法是找到第二个元素为“B”的所有元素并将其放入列表中。在这种情况下:
TempList = []
for w in LLList
if w[1] == "B"
TempList.append(w)
结果是:
TempList = [ ["A", "B", 30], ["C", "B", 30], ["D", "B", 20] ]
然后找到templast中第三个元素的最大值,在这种情况下是30
MaxB = max(TempList, key = lambda x:x[2])[2] # MaxB = 30
在圣殿骑士团的第3列计算MaxB的出现次数
[p[2] for p in TempList].count(MaxB)
在这种情况下是2
这是一个过于天真的方法,太多的代码,需要太多的内存和时间来完成,我知道,但我想不出比这更好的。我知道一定有一个优雅而有效的方法来解决这个问题,请帮助我,非常感谢!你知道吗
简单的使用方法numpy.amax文件和列表理解。你知道吗
这将发现您的价值观:
它在x[1]中找到所有具有B的值,x[2]等于具有B的值的最大值
之后,您只需找到索引:
也可以使用
collections.Counter
:相关问题 更多 >
编程相关推荐