告诉
max()如何计算索引序列的最大值:
max(range(len(ld)), key=lambda index: ld[index]['size'])
这将返回
size键最高的索引:
>>> ld = [{'prop': 'foo', 'size': 100}, {'prop': 'boo', 'size': 200}]>>> max(range(len(ld)), key=lambda index: ld[index]['size'])1>>> ld[1]{'size': 200, 'prop': 'boo'}
如果您一直想要该词典,则可以使用:
max(ld, key=lambda d: d['size'])
并同时获取索引 和 字典,可以
enumerate()在这里使用:
max(enumerate(ld), key=lambda item: item[1]['size'])
更多演示:
>>> max(ld, key=lambda d: d['size']){'size': 200, 'prop': 'boo'}>>> max(enumerate(ld), key=lambda item: item[1]['size'])(1, {'size': 200, 'prop': 'boo'})
该
key函数依次传递给输入序列中的每个元素,
max()并将选择该
key函数的返回值最高的元素。
使用单独的列表提取所有
size值,然后将其映射回原始列表不是很有效(您现在需要遍历列表两次)。
list.index()无法工作,因为它必须匹配整个字典,而不仅仅是其中一个值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)