使用lambda表达式:
lst = [(0.366158981, 'median_income'),
(0.164780994, 'INLAND'),
(0.108792957, 'pop_per_hhold'),
(0.0733442355, 'longitude'),
(0.0629090705, 'latitude'),
(0.0564191792, 'rooms_per_hhold'),
(0.0533510773, 'bedrooms_per_room'),
(0.0411437985, 'housing_median_age'),
(0.0148742809, 'population'),
(0.0146726854, 'total_rooms'),
(0.0142575993, 'households'),
(0.0141064835, 'total_bedrooms'),
(0.0103114883, '<1H OCEAN'),
(0.00285647464, 'NEAR OCEAN'),
(0.0019604156, 'NEAR BAY'),
(6.02803867e-05, 'ISLAND'),
(0.0, 'some_var')]
lst = sorted(lst, key=lambda x: x[0])
print(lst)
[(0.0, 'some_var'), (6.02803867e-05, 'ISLAND'), (0.0019604156, 'NEAR BAY'), (0.00285647464, 'NEAR OCEAN'), (0.0103114883, '<1H OCEAN'), (0.0141064835, 'total_bedrooms'), (0.0142575993, 'households'), (0.0146726854, 'total_rooms'), (0.0148742809, 'population'), (0.0411437985, 'housing_median_age'), (0.0533510773, 'bedrooms_per_room'), (0.0564191792, 'rooms_per_hhold'), (0.0629090705, 'latitude'), (0.0733442355, 'longitude'), (0.108792957, 'pop_per_hhold'), (0.164780994, 'INLAND'), (0.366158981, 'median_income')]
或-与
reverse = True
:
lst = sorted(lst, key=lambda x: x[0], reverse=True)
print(lst)
会屈服的
[(0.366158981, 'median_income'), (0.164780994, 'INLAND'), (0.108792957, 'pop_per_hhold'), (0.0733442355, 'longitude'), (0.0629090705, 'latitude'), (0.0564191792, 'rooms_per_hhold'), (0.0533510773, 'bedrooms_per_room'), (0.0411437985, 'housing_median_age'), (0.0148742809, 'population'), (0.0146726854, 'total_rooms'), (0.0142575993, 'households'), (0.0141064835, 'total_bedrooms'), (0.0103114883, '<1H OCEAN'), (0.00285647464, 'NEAR OCEAN'), (0.0019604156, 'NEAR BAY'), (6.02803867e-05, 'ISLAND'), (0.0, 'some_var')]
作为
@Barmar
正确地指出,您甚至不需要lambda表达式,因此
lst = sorted(lst)
完全可以。
lst1 = sorted(lst, key=lambda x: x[0])
lst2 = sorted(lst)
assert lst1 == lst2