говорят, что у меня есть список людей разного возраста int
и дохода int
, и я хочу отсортировать их следующим образом:
people = [(25, 10000), (45, 22000), (20, 11000), (26, 13000), (27, 11000)]
people_new = [(20, 11000), (25, 10000), (27, 11000), (26, 13000), (45, 22000)]
Первая сортировка по возрастам.Во-вторых, те, чей возраст ближе всего друг к другу (т.е. разница в возрасте между людьми <= 2), располагаются в порядке доходов.Возраст не так важен, если они близки по разнице. </p>
Можно ли это сделать с помощью функции sorted
в списках?
Если я напишу: people_new = sorted(people, key = lambda t: (t[0],t[1]))
Человек с 27 лет не в порядке, поэтому это будет неправильно.
[(20, 11000), (25, 10000), (26, 13000), (27, 11000) , (45, 22000)]
Нужно ли писать новую функцию?Если да, то есть ли короткий питонский способ сделать это?
Редактировать: В возрасте близко Я имею в виду <= 2 из последнего возраста, который был добавлен вправильно отсортированный список.можно добавить возраст 20, но поскольку нет 21 или 22, тогда 25 становится началом следующей группы и 25, 26, 27, ... будут рассматриваться.Если бы были включены все возрасты 25 - 45 лет, то это была бы одна группа. </p>