在Python中查找每个数组中的最小值

时间:2012-11-07 01:36:21

标签: python

假设我在Python 3.3中有以下数据:

my_array = 
   [{'man_id': 1, '_id': ObjectId('1234566'), 'type': 'worker', 'value': 11}, 
   {'man_id': 1, '_id': ObjectId('1234577'), 'type': 'worker', 'value': 12}],

   [{'man_id': 2, '_id': ObjectId('1234588'), 'type': 'worker', 'value': 11}, 
    {'man_id': 2, '_id': ObjectId('3243'), 'type': 'worker', 'value': 7},
    {'man_id': 2, '_id': ObjectId('54'), 'type': 'worker', 'value': 99},
    {'man_id': 2, '_id': ObjectId('9879878'), 'type': 'worker', 'value': 135}],
   #.............................
   [{'man_id': 13, '_id': ObjectId('111'), 'type': 'worker', 'value': 1}, 
    {'man_id': 13, '_id': ObjectId('222'), 'type': 'worker', 'value': 2},
    {'man_id': 13, '_id': ObjectId('3333'), 'type': 'worker', 'value': 9}]

有3个阵列。如何在每个数组中找到具有最小值的元素?

2 个答案:

答案 0 :(得分:4)

[min(arr, key=lambda s:s['value']) for arr in my_array]

答案 1 :(得分:1)

也许这样的东西适合你:

for arr in my_array:
   minVal = min([row['value'] for row in arr])
   print [row for row in arr if row['value'] == minVal]