Комментарии 20
Функции в Python могут возвращать более одной переменной без словаря, списка или классакортежи не считаются, видимо
>>> a = 1, 2
>>> a
(1, 2)
>>> type(a)
<class 'tuple'>
Без (data) класса будет ошибка?
Каша, где надо будет помнить кто на ком стоял в порядке вывода.
Хотя, некоторые именно так и живут(аддоны WoW на Lua, я на Вас смотрю!), с этими
local _, _, _, _, _, itemType, itemSubType = GetItemInfo(itemID)
функции сортировки обеспечивают стабильный порядок сортировкиВ русском языке нет термина «стабильный порядок сортировки», зато есть термин «устойчивая сортировка». Вы объявляете себя «школой по программированию», но при этом не знаете русской терминологии?
Кажется, в данном случае корректно переводить термины "напрямую". Все равно подавляющее большинство людей используют английскую терминологию.
У меня, например, было несколько случаев, когда я не понимал русскую терминологию. Особенно это проявляется в тех ситуациях, когда термины еще и сокращают. Простым примером может служить GCD, который у нас принято называть НОД.
Да и с точки зрения написания/чтения кода неудобно туда-сюда переводить термины.
Учитывая приведенные мной аргументы, можно сказать, что школа как раз-таки делает жизнь своих учеников проще, при этом не срезая углы
import operator
people.sort(key=operator.itemgetter('age'))
people.sort(key=operator.itemgetter('name'))
Вы выполняете сортировку дважды. Плюс к тому же вам нужно перечислить ключи в порядке противоположном естественному, что может запутывать и стать причиной ошибки. Правильное решение:
people.sort(key=lambda item: (item['name'], item['age']))
Ну и не вполне корректно выдавать списковые включения, классы данных и возврат нескольких значений за какие-то трюки опытных программистов. Это вполне обычные элементы языка.
Хотя, конечно, статью «8 рандомно надёрганных элементов Питона» прочитало бы меньше людей.
Вы выполняете сортировку дваждыэто не они — материал переводной, а автор даже не распознал кортеж в последнем примере
people.sort(key=operator.itemgetter(' age ', ' name ')
Вот так работает тоже. Странный пример у автора конечно, видно тупо перевели, а примеры ее проверили.
Все равно спасибо всем за практику и некоторые примеры возьму в применение.
people = [
{'name': 'Mike', 'age': 30},
{'name': 'Tom', 'age': 21},
{'name': 'Sarah', 'age': 34},
{'name': 'Jack', 'age': 45},
{'name': 'Piter', 'age': 13},
{'name': 'Vasja', 'age': 23},
{'name': 'Lora', 'age': 27}
]
people.sort(key=lambda item: (item['name'], item['age']))
for i in people:
print(i)
Ответ:
{'name': 'Jack', 'age': 45}
{'name': 'Lora', 'age': 27}
{'name': 'Mike', 'age': 30}
{'name': 'Piter', 'age': 13}
{'name': 'Sarah', 'age': 34}
{'name': 'Tom', 'age': 21}
{'name': 'Vasja', 'age': 23}
сортирует только по имени, ну или по первому вхождению ключа
Вообще существует способ отсортировать оба параметра?
У вас в примере ни одно имя не повторяется. Для таких данных сортировка по двум ключам ни чем не будет отличаться от сортировки только по имени. Увидеть как работает сортировка по двум параметрам можно только на данных, в которых есть повторения по первому параметру.
никогда не слышал чтоб так называли
датаклассы — так говорят
Упомянут генератор списка но не упомянут простой генератор через круглые скобки, который будет в большинстве случаев эффективнее.
А также создание множества (set) и словаря (dict)
Уж никак не мог подумать что list comprehension это «трюк» для «опытных программистов»
dataclass чем то похожи на слоты))
8 трюков в Python, используемых опытными программистами