если отсортировать такой список с помощью встроенной функции sorted без указания key?
list_ = [{2}, {3, 1}, {1, 2, 3}]
Без изменений?
там issuperset и issubset. я выиграл?
ты кажется не понял меня
И снова нет.
Всм?
То что ты знаешь, какие там будут использованы методы — не значит, что ты понял смысл.
Так если я знаю как они сравниваются
Гарантии этого есть?
>>> list_ = [{2}, {3, 1}, {1, 2, 3}] >>> sorted(list_) [{2}, {1, 3}, {1, 2, 3}] >>>
Хрен знает, потому что у множеств не работают привычные законы для <, >, <=, >=, ==
А вот это правильный ответ.
Я же про это сказал, ну алло
я бы с такого собеса встал и вышел
мы недавно уже обсуждали это. static PyObject * set_richcompare(PySetObject *v, PyObject *w, int op) { PyObject *r1; int r2; if(!PyAnySet_Check(w)) Py_RETURN_NOTIMPLEMENTED; switch (op) { case Py_EQ: if (PySet_GET_SIZE(v) != PySet_GET_SIZE(w)) Py_RETURN_FALSE; if (v->hash != -1 && ((PySetObject *)w)->hash != -1 && v->hash != ((PySetObject *)w)->hash) Py_RETURN_FALSE; return set_issubset(v, w); case Py_NE: r1 = set_richcompare(v, w, Py_EQ); if (r1 == NULL) return NULL; r2 = PyObject_IsTrue(r1); Py_DECREF(r1); if (r2 < 0) return NULL; return PyBool_FromLong(!r2); case Py_LE: return set_issubset(v, w); case Py_GE: return set_issuperset(v, w); case Py_LT: if (PySet_GET_SIZE(v) >= PySet_GET_SIZE(w)) Py_RETURN_FALSE; return set_issubset(v, w); case Py_GT: if (PySet_GET_SIZE(v) <= PySet_GET_SIZE(w)) Py_RETURN_FALSE; return set_issuperset(v, w); } Py_RETURN_NOTIMPLEMENTED; }
Я бы ожидал ошибку. Не? Но сильно зависит от исходного положения сетов, так как не все сравнимы со всеми
Суть в том — что сама процедура сортировки в таком случае бессмысленно. Поэтому смотреть на реализацию — не продуктивно.
меня как-то раз заставили на собесе дерево разворачивать, я развернул и спросил нахуя вы это спрашиваете, вразумительного ответа не услышал
Насколько помню, текущая реализация сортировки всегда как-нибудь да завершается и проверки, что оно действительно отсортировано — нет. Это, в прочем, не так важно.
С чего бесмысленна? У нас в доке вполне определено что делает <, >, ... у множества
Ты правда думаешь что для любой теоретической задачи есть 100% совпадающее с ней практическое применение? Проверяют твое умение писать несложные алгоритмы, потому что пригодится может в любой момент
Не коммутативна я бы сказал
А нафига нужне программист с таким подходом к нормальным в общем-то вопросам?
Чтобы сортировка работала, должен быть определён частичный порядок. То есть для двух элементов должно быть верно либо a <= b, либо a > b. Для двух множеств оба могут быть ложны.
Обсуждают сегодня