我最初有两个数组,一个包含数字,另一个包含关联值:
scores = [2, 4, 12 ... etc ]
players = ["Peter", "Brian", "Meg" ... etc]
top_score_index = scores.index(max(scores))
top_player = players[top_score_index]
这已经很糟糕了,因为 scores.index(max(scores))
显然会迭代该列表两次(在最坏的情况下)。
情况发生了变化,scores
数组现在包含列表:
scores = [[something, something, something], [something, something]]
我关心的分数只是len(scores[some_offset])
,即嵌套列表的长度。
如何轻松找到这些嵌套列表中最长的索引?例如。用于:
[[0,0,0],[0,0],[0,0,0,0,0,0]]
我期望返回值为2
。请注意,效率是我现在关心的问题。
最佳答案
scores = [[0,0,0],[0,0],[0,0,0,0,0,0]]
print(max((len(l), i) for i, l in enumerate(scores))[1])
打印2
。
您无法避免在每个子列表上调用len
,因此我认为您在效率方面无法做得更好。
关于python - 查找二维列表中最长子列表的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40710858/