简体   繁体   中英

How to sort this list using Python

Here is my list, I need to sort this list by uage which is second value in this list, highest to lowest, I used sorted function in Python but still not able to sort it. Here is what I did:

Create list

list=[['user_hp', '581702031', u'/data/test_list/vol1/jars'], ['user_hp', '20358287286', u'/data/test_list/vol1/preprocessing'], ['user_hp', '5654822268', u'/data/test_list/user_listprocess/prep_1_pred_full.csv'], ['user_ma', '535416651', u'/data/test_list/user_listprocess/dr_summaryocto_2015_2018'], ['user_rj', '65858160', u'/data/test_list/user_listprocess/dr_summaryocto_valid_baseline'], ['user_rj', '91006461', u'/data/test_list/user_listprocess/dr_summaryocto_valid_baseline_norm'], ['user_rj', '65857281', u'/data/test_list/user_listprocess/dr_summaryocto_valid_test'], ['user_rj', '91006341', u'/data/test_list/user_listprocess/dr_summaryocto_valid_test_norm'], ['user_rj', '30919968', u'/data/test_list/user_listprocess/dr_summarytm_valid_baseline'], ['user_rj', '30471741', u'/data/test_list/user_listprocess/dr_summarytm_valid_baseline_details'], ['user_rj', '30918279', u'/data/test_list/user_listprocess/dr_summarytm_valid_test'], ['user_rj', '30472743', u'/data/test_list/user_listprocess/dr_summarytm_valid_test_details'], ['user_ma', '4085622933', u'/data/test_list/user_listprocess/exp_on_terr_201912.csv'], ['user_ma', '12', u'/data/test_list/user_listprocess/mv_spark_test'], ['user_rp', '33798607293', u'/data/test_list/user_listprocess/points_linref'], ['user_ma', '2048712', u'/data/test_list/user_listprocess/std_events_table'], ['user_tj', '0', u'/data/test_list/user_listprocess/trip_summary_dev'], ['user_tj', '101085', u'/data/test_list/user_listprocess/trip_summary_dev_fixtz_md'], ['user_tj', '101676', u'/data/test_list/user_listprocess/trip_summary_dev_timezone'], ['user_ma', '0', u'/data/test_list/user_listprocess/tr_summary_oc_201518_wo500m'], ['user_ma', '35921358528', u'/data/test_list/user_listprocess/tr_summary_oc_2015_2018'], ['user_rj', '273606066', u'/data/test_list/user_listprocess/tr_summary_oc_valid_baseline'], ['user_rj', '273606066', u'/data/test_list/user_listprocess/tr_summary_oc_valid_test'], ['user_rj', '113375118', u'/data/test_list/user_listprocess/trip_summary_tm_valid_baseline'], ['user_rj', '113375118', u'/data/test_list/user_listprocess/trip_summary_tm_valid_test'], ['user_ms', '7968', u'/data/test_list/user_listprocess/u360_driver_summary'], ['user_ms', '7920', u'/data/test_list/user_listprocess/u360_dr_summaryexclude_brake']]

Sort the above list using Python function sorted

sorted(list,key=lambda l:l[1], reverse=True)

I am not getting right results:

[['user_rj', '91006461', u'/data/test_list/user_listprocess/dr_summaryocto_valid_baseline_norm'], ['user_rj', '91006341', u'/data/test_list/user_listprocess/dr_summaryocto_valid_test_norm'], ['user_ms', '7968', u'/data/test_list/user_listprocess/u360_driver_summary'], ['user_ms', '7920', u'/data/test_list/user_listprocess/u360_dr_summaryexclude_brake'], ['user_rj', '65858160', u'/data/test_list/user_listprocess/dr_summaryocto_valid_baseline'], ['user_rj', '65857281', u'/data/test_list/user_listprocess/dr_summaryocto_valid_test'], ['user_hp', '581702031', u'/data/test_list/vol1/jars'], ['user_hp', '5654822268', u'/data/test_list/user_listprocess/prep_1_pred_full.csv'], ['user_ma', '535416651', u'/data/test_list/user_listprocess/dr_summaryocto_2015_2018'], ['user_ma', '4085622933', u'/data/test_list/user_listprocess/exp_on_terr_201912.csv'], ['user_ma', '35921358528', u'/data/test_list/user_listprocess/tr_summary_oc_2015_2018'], ['user_rp', '33798607293', u'/data/test_list/user_listprocess/points_linref'], ['user_rj', '30919968', u'/data/test_list/user_listprocess/dr_summarytm_valid_baseline'], ['user_rj', '30918279', u'/data/test_list/user_listprocess/dr_summarytm_valid_test'], ['user_rj', '30472743', u'/data/test_list/user_listprocess/dr_summarytm_valid_test_details'], ['user_rj', '30471741', u'/data/test_list/user_listprocess/dr_summarytm_valid_baseline_details'], ['user_rj', '273606066', u'/data/test_list/user_listprocess/tr_summary_oc_valid_baseline'], ['user_rj', '273606066', u'/data/test_list/user_listprocess/tr_summary_oc_valid_test'], ['user_ma', '2048712', u'/data/test_list/user_listprocess/std_events_table'], ['user_hp', '20358287286', u'/data/test_list/vol1/preprocessing'], ['user_ma', '12', u'/data/test_list/user_listprocess/mv_spark_test'], ['user_rj', '113375118', u'/data/test_list/user_listprocess/trip_summary_tm_valid_baseline'], ['user_rj', '113375118', u'/data/test_list/user_listprocess/trip_summary_tm_valid_test'], ['user_tj', '101676', u'/data/test_list/user_listprocess/trip_summary_dev_timezone'], ['user_tj', '101085', u'/data/test_list/user_listprocess/trip_summary_dev_fixtz_md'], ['user_tj', '0', u'/data/test_list/user_listprocess/trip_summary_dev'], ['user_ma', '0', u'/data/test_list/user_listprocess/tr_summary_oc_201518_wo500m']]

Those are string s not int s. Do an int conversion in the function you are using to sort as well:

sorted(list,key=lambda l: int(l[1]), reverse=True)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM