2017-10-05 31 views
0

我使用python v2.7最小差异列表子列表,我有参数mean_val=35.3085666667 我有一个包含子列表列表new_add_list。在new_add_list[3]我有一个分数值。从new_add_list我想获得最小值为abs(new_add_list[3]-mean_val)的子列表。选择从那里子列表中的项目有从给定值

new_add_list=[ 
['encoding_txt\\pirkagia_10b_192x144_15_qp_26_ON_encoder_randomaccess_B16_Filte 
rs_ON_scalable_JOURNAL2017.txt', '192x144', 26, 35.1782, 136.8125, 300.788, 0.844, -3.5], 
['encoding_txt\\pirkagia_10b_384x288_15_qp_28_ON_encoder_randomaccess_ 
B16_Filters_ON_scalable_JOURNAL2017.txt', '384x288', 28, 35.2193, 275.4614, 1065.412, 2.167, -2], 
['encoding_txt\\pirkagia_10b_720x576_15_qp_30_ON_encoder_rando 
maccess_B16_Filters_ON_scalable_JOURNAL2017.txt', '720x576', 30, 35.5282, 484.3387, 3536.937, 6.679, 1.5]] 

对于例如答案一定是:

['encoding_txt\\pirkagia_10b_384x288_15_qp_28_ON_encoder_randomaccess_ 
B16_Filters_ON_scalable_JOURNAL2017.txt', '384x288', 28, 35.2193, 275.4614, 1065.412, 2.167, -2] 

我可以使用类似sub(new_add_list, key=itemgetter(3)-mean_val)

回答

2

使用min用适当的键功能:

min(new_add_list, key=lambda l: abs(l[3] - mean_val)) 
+0

太好了!谢谢! – zinon