2024-05-16 22:34:21 发布
网友
如果我有一张单子,比如:
l = [{'dist':56, 'responder':N}, {'dist':26, 'responder':N}, {'dist':86, 'responder':N}]
我想返回2个最小距离('dist')以及'responder'的值,在Python中最好的方法是什么?你知道吗
使用@Bakuriu的解决方案进行修改:
l = [{'dist':56, 'responder':'n'}, {'dist':26, 'responder':'n'}, \ {'dist':86, 'responder':'n'}] smallestTwo = sorted(l, key=lambda d: d['dist'])[:2]
输出:
[{'responder': 'n', 'dist': 26}, {'responder': 'n', 'dist': 56}]
试着先给你的单子排序
>>> from operator import itemgetter >>> sorted(l, key=itemgetter('dist'), reverse=True) [{'responder': 'N', 'dist': 86}, {'responder': 'N', 'dist': 56}, {'responder': 'N', 'dist': 26}]
然后切片前两个元素
>>> sorted(l, key=itemgetter('dist'), reverse=True)[:2] [{'responder': 'N', 'dist': 86}, {'responder': 'N', 'dist': 56}]
从他们那里得到回应
>>> map(itemgetter('responder'), sorted(l, key=itemgetter('dist'), reverse=True)[:2]) ['N', 'N']
使用@Bakuriu的解决方案进行修改:
输出:
试着先给你的单子排序
然后切片前两个元素
从他们那里得到回应
相关问题 更多 >
编程相关推荐