I want to sort list of tuples like that:
rows = [ ('A', 'a', 1, '?'),
('A', 'a', 1, '!'),
('A', 'a', 1, '#'),
('A', 'b', 1, '#'),
('A', 'b', 2, '$'),
('A', 'c', 2, '@'),
('A', 'd', 3, '@') ]
by this frequency pattern:
- we have 1 value 'A' at index [0]
- we have 4 values 'a', 'b', 'c', 'd' at index [1]
- we have 3 values 1,2,3 at index [2]
- we have 5 values '?', '!', '#', '$', '@' at index[3]
so, sorted list should look like that:
rows = [ ('A', 1, 'a', '?'),
('A', 1, 'a', '!'),
('A', 1, 'a', '#'),
('A', 1, 'b', '#'),
('A', 2, 'b', '$'),
('A', 2, 'c', '@'),
('A', 3, 'd', '@') ]
How to do that elegantly?