5? Я читал как это на уровне CPython работает, но в нём шла ссылка на ob_item[0], что по сути то же самое.
У меня есть предположение что это связано с тем что индексы являются хэшируемыми объектами, и по ним мы узнаём место объекта в памяти, но я не уверен
если ты про CPython то по идее в нем индексация утащена так или иначе из С, где list[0] = *(list + 0) = берешь значение по указателю на начало листа + оффсет в самом листе
Про CPython, ага
Слушай, а как компьютер понимает куда указатель, прошу прощения за тавтологию, указывает?
Чивоблин? При чем тут хеши вообще?
Как-то всё настолько смешалось, что ни вопрос не понятен, ни с какого рода объектами мы вообще дело имеем.
знаешь что такое адреса памяти?
Объект - список Вопрос - каким образом работает индексирование по списку на низком уровне. Как из оперативной памяти мы получаем нужное нам значение?
Популярненько https://m.youtube.com/watch?v=Wh22_O8jXVQ
Нам известен адрес начала списка, по индексу вычисляется смещение относительно адреса начала списка
Если правильно помню, это местоположение объекта в оперативной памяти. В питоне можно проверить с помощью функции id()
Списки с хэшами дела не имеют, индекс списка - всегда целочисленный.
Можешь посмотреть вот тут, это про Rust, но основная идея должна быть понятна. https://www.youtube.com/watch?v=rDoqT-a6\UFg
Ну кстати там про массивы, про хранение и поиск ячейки памяти по индексу списка там ничего нет
Как будто питоний список в душе не массив...
Про это есть в следующих видео)
Обсуждают сегодня