python - 查找二维列表中最长子列表的索引

标签 python arrays

我最初有两个数组,一个包含数字,另一个包含关联值:

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/

相关文章:

python - 将任务延迟到特定时间

python - 从内存中恢复 Python 脚本,我搞砸了

python - 带有 SWIG 的 Python 中 C++ 类的奇怪行为

arrays - 以最佳方式解析二维数组

javascript - 如何使用基本的 javascript 更新我的任务列表?

arrays - Postgres - 从数组到多行

python - 使用 Python,如何在 Linux 上创建虚拟串口?

c++ - 如何将十六进制字解析为填充位数组

c - 搜索数组不提供适当的输出

python - 有没有办法让这个 numpy 数组操作更快?