How to Sort a List by a property in the object
The easiest way I can think of is to use Linq: List<Order> SortedList = objListOrder.OrderBy(o=>o.OrderDate).ToList();
The easiest way I can think of is to use Linq: List<Order> SortedList = objListOrder.OrderBy(o=>o.OrderDate).ToList();
Sort homes by price in ascending order: homes.sort(function(a, b) { return parseFloat(a.price) – parseFloat(b.price); }); Or after ES6 version: homes.sort((a, b) => parseFloat(a.price) – parseFloat(b.price)); Some documentation can be found here. For descending order, you may use homes.sort((a, b) => parseFloat(b.price) – parseFloat(a.price));
Here’s a generic-friendly version: public class MapUtil { public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) { List<Entry<K, V>> list = new ArrayList<>(map.entrySet()); list.sort(Entry.comparingByValue()); Map<K, V> result = new LinkedHashMap<>(); for (Entry<K, V> entry : list) { result.put(entry.getKey(), entry.getValue()); } return result; } }
The sorted() function takes a key= parameter newlist = sorted(list_to_be_sorted, key=lambda d: d[‘name’]) Alternatively, you can use operator.itemgetter instead of defining the function yourself from operator import itemgetter newlist = sorted(list_to_be_sorted, key=itemgetter(‘name’)) For completeness, add reverse=True to sort in descending order newlist = sorted(list_to_be_sorted, key=itemgetter(‘name’), reverse=True)
Python 3.7+ or CPython 3.6 Dicts preserve insertion order in Python 3.7+. Same in CPython 3.6, but it’s an implementation detail. >>> x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} >>> {k: v for k, v in sorted(x.items(), key=lambda item: item[1])} {0: 0, 2: 1, 1: 2, 4: 3, 3: 4} … Read more
It’s easy enough to write your own comparison function: function compare( a, b ) { if ( a.last_nom < b.last_nom ){ return -1; } if ( a.last_nom > b.last_nom ){ return 1; } return 0; } objs.sort( compare ); Or inline (c/o Marco Demaio): objs.sort((a,b) => (a.last_nom > b.last_nom) ? 1 : ((b.last_nom > a.last_nom) … Read more