Форум сайта python.su
4
Привет!
Дан список кортежейв
d=[(3, 4, 0), (6, 2, 1), (2, 2, 2), (2, 2, 2), (6, 2, 1), (3, 4, 0), (3, 4, 0), (3, 4, 0)]
[(3, 4, 0), (3, 4, 0), (3, 4, 0), (3, 4, 0), (6, 2, 1), (2, 2, 2), (2, 2, 2), (6, 2, 1)]
Отредактировано panama555 (Апрель 7, 2019 20:11:31)
Офлайн
76
print(sorted(d, key=lambda x: x[1] and x[2]))
print(sorted(d, key=lambda x: (x[1], -x[2]), reverse=True))
Офлайн
4
То что нужно.
Спасибо
Офлайн
857
panama555Оно и так сортирует поэлементно
необходимо отсортировать его по 1-му элементу кортежа, а если 1-е элементы равны, то досортировать обращая внимание на 2-е элементы. (2-е элементы уникальны для первых элементов)
>>> lst = [(1, 3, 3), (1, 2, 3), (1, 3, 2)] >>> out = sorted(lst) >>> out [(1, 2, 3), (1, 3, 2), (1, 3, 3)] >>>
Отредактировано py.user.next (Апрель 8, 2019 08:34:11)
Офлайн
4
py.user.next
Оно и так сортирует поэлементно
мне нужно сортировать по 1-му полю, (нулевое поле не нужно учитывать!)
Офлайн
568
Для подобных функций есть специальное решение
from operator import itemgetter
getter = itemgetter(1, 2)
print(getter((1,2,3,4)))
s = sorted(lst, key=getter)
Офлайн
4
К сожалению с этим модулем (как и с многими другими) не разбирался, поэтому пока не представляю как им пользоваться.
Из-за этого другой вопрос:
где можно по-русски почитать о разных модулях.
Т.е. узнать для чего модуль предназначен, как пользоваться их функциями
И совсем для начинающего: - какими модулями стоит воспользоваться первым делом?
Офлайн
22
где можно по-русски почитать о разных модулях.Некоторые модули стандартной библиотеки описаны здесь: https://pythonworld.ru/moduli , но модуля operator я там не видел.
Офлайн
857
panama555Нет такого понятия “нулевое поле”. Из-за того, что ты неправильно выразился, получилось двусмысленное понимание того, что ты говоришь. Поэтому нужно говорить “первое поле” либо “я называю нулевым полем первый элемент, а первым полем второй элемент, помогите отсортировать по первому полю”. Так тебя поймут точно с первого раза и не будет время тратиться сначала на неправильные советы, а потом на последующее выяснение того, о чём ты спрашивал, и уже на исправленные советы.
мне нужно сортировать по 1-му полю, (нулевое поле не нужно учитывать!)
Отредактировано py.user.next (Апрель 8, 2019 23:31:11)
Офлайн