Avonar
я вижу ты разбираешься
Pavel
и зачем в питоне знать структуры данных?
а левый от правого джойна отличать в питоне надо?
Tishka17
Я вот кстати не знаю какие в питоне есть структуры кроме списка и словаря
Avonar
а левый от правого джойна отличать в питоне надо?
сейчас бы админу не уметь отличать)
Tishka17
Датаклассы. =)
Это обычные классы, не считается
Alexey
расскажи, в каких случаях применять словарь, а в каких namedtuple
namedtuple -- когда тебе нужно хранить несколько полей, но не нужен полноценный класс. Словарь -- когда нужно хранить пары ключ: значение
Tishka17
Окей, словарь, список и класс
Tishka17
Deque
О. Точняк
Kop
Я вот кстати не знаю какие в питоне есть структуры кроме списка и словаря
Там надстройки уже идут, по сути все на словарях выкручивают
Tishka17
Тоже новичок? :)
Ты что, я архитектор!
Avonar
и наборот
Kop
и почему я не могу использовать для этого словарь?
Почему ты не используешь для этого нормальный класс
Tishka17
И чем namedtuple неполноценный?
Pavel
🍁 Jaŭhien
В питоне есть массивы и memoryview
Alexey
У namedtuple сразу repr красивый будет и прочие ништяки.
🍁 Jaŭhien
а еще struct и ctypes
И десяток разных словарей)
Tishka17
а еще struct и ctypes
Структ - это про парсинг бинарных данных все де
Alexey
Но вот делать свои методы для namedtuple -- это уже на мой взгляд извращение
Tishka17
В питоне есть массивы и memoryview
Окей. Массивы. От списка не сильно отличаются, но ок. А memoryview сложно назвать структурой
Pavel
но вообще даже union можно реализовать
Pavel
хоть и извращенно
Alexey
А почему не датакласс?
Хороший вопрос. Не знаю.
🍁 Jaŭhien
А почему не датакласс?
namedtuple полегче будет
Gleb
зачем нужны tcp options?
ну опционы тисипи - поднять бабла, чтоб стали другими дела
🍁 Jaŭhien
Пруф
Я замерял, но сейчас не до пруфов
Kop
Чем ограничены?
Массивы изначально имею длину, тоесть к масиву ты не сможешь добавить что-то, только пересоздать его. В лист же ты можешь добавить
Pavel
namedtuple полегче будет
просто намедтупль завезли осень давно и к нему я привык (с)
Mark
Namedtuple изменяем?
Sayid
Как сделать так, чтобы os.makedirs создавал папку, а не файл?
Sayid
А, всё, нашёл ошибку
Mark
Вот и ответ почему он может быть лучше словаря
🍁 Jaŭhien
Насколько я помню, namedtuple был слегка толще обычного тупла
🍁 Jaŭhien
И тоньше чем класс
Kop
Он тут ещё лист. Я про настоящие массивы из плюсов
Tishka17
Он тут ещё лист. Я про настоящие массивы из плюсов
Какие настоящие массивы в питоне кроме этих?
🍁 Jaŭhien
Сам класс или объекты?
Объекты, конечно
Alexey
и почему я не могу использовать для этого словарь?
Граф, например, удобно реализовывать при помощи словаря. Наверное, можно сделать и при помощи кортежей, но это не канонично и написание займет больше времени. А, так понимание того, что ты написал другими людьми.
Gleb
Чтобы отличать словарь от списка
А разве в питоне список это на самом деле не словарь с заранее определенными ключами-цифирьками?
🍁 Jaŭhien
Вот кстати вспомнил хорошую структуру данных, енум)
Kop
Какие настоящие массивы в питоне кроме этих?
В том то и фишка что изначально массив это данные с определенным типом ограниченной длины, в питоне нету настоящих массивов это все листы
🍁 Jaŭhien
встань и выйди плез
Ену мы классные, хз о чем ты
Eugene
Котоны, я сделал это наконец! https://habr.com/ru/post/444446/ (жду ваших плюсиков)
> В то время, как существуют ORM для MongoDB на питоне, я считаю использование ORM практикой порочной Почему?
Alex
В том то и фишка что изначально массив это данные с определенным типом ограниченной длины, в питоне нету настоящих массивов это все листы
эм… что ты понимаешь под “настоящим массивом”. вон кортеж к примеру имеет фиксированную длину.
Kop
Ээ. realloc отменили?
Не отменили, но там разве не пересоздание ?
Tishka17
Не отменили, но там разве не пересоздание ?
А что тогда по твоему списки в питоне?
Alex
realloc расширит кусок участок выделенной памяти если сможет, если нет - выделит новый.
Alexey
Граф в виде словаря? Зачем? Что гадать какие есть ключи?
Хм, а как ещё? g = {a:[b, c, d], b:[c], } Простенько и со вкусом
Kop
Из интернета полностью согласен Списки в Python - упорядоченные изменяемые коллекции объектов произвольных типов (почти как массив, но типы могут отличаться).
Kop
Ключевое почти как
Alex
и в чем собственно проблема или нужда?
Kop
realloc расширит кусок участок выделенной памяти если сможет, если нет - выделит новый.
Он указывает на новое место в памяти куда перетаскивает
Kop
Вот вырезка из доки Функция realloc выполняет перераспределение блоков памяти. Размер блока памяти, на который ссылается параметр ptrmem изменяется на size байтов. Блок памяти может уменьшаться или увеличиваться в размере. Эта функция может перемещать блок памяти на новое место, в этом случае функция возвращает указатель на новое место в памяти. Содержание блока памяти сохраняется даже если новый блок имеет меньший размер, чем старый. Отбрасываются только те данные, которые не вместились в новый блок. Если новое значение size больше старого, то содержимое вновь выделенной памяти будет неопределенным.
Alex
так в чем проблема то?
вот мне тоже интересно