我知道标题有点难以理解。对不起,让我解释一下。例如:我们有一个嵌套列表,由 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] ]
然后找到 TempList 中第三个元素中的最大值,在这种情况下将是 30
MaxB = max(TempList, key = lambda x:x[2])[2] # MaxB = 30
并统计在 TempList 的第 3 列出现 MaxB
[p[2] for p in TempList].count(MaxB)
在这种情况下将是 2
这是一种过于幼稚的方法,编码太多,需要太多 RAM 和时间来完成,我知道,但我想不出比这更好的方法了。我知道必须有一个优雅有效的方法来解决这个问题,请帮助我,非常感谢!