170 похожих чатов

Ребят, я немного задушнить хочу Как компьютер понимает что test_list[0] =

5? Я читал как это на уровне CPython работает, но в нём шла ссылка на ob_item[0], что по сути то же самое.

У меня есть предположение что это связано с тем что индексы являются хэшируемыми объектами, и по ним мы узнаём место объекта в памяти, но я не уверен

16 ответов

22 просмотра

если ты про CPython то по идее в нем индексация утащена так или иначе из С, где list[0] = *(list + 0) = берешь значение по указателю на начало листа + оффсет в самом листе

Python-Developer Автор вопроса
Max Azatian
если ты про CPython то по идее в нем индексация ут...

Слушай, а как компьютер понимает куда указатель, прошу прощения за тавтологию, указывает?

Чивоблин? При чем тут хеши вообще?

Как-то всё настолько смешалось, что ни вопрос не понятен, ни с какого рода объектами мы вообще дело имеем.

знаешь что такое адреса памяти?

Python-Developer Автор вопроса
evle
Как-то всё настолько смешалось, что ни вопрос не п...

Объект - список Вопрос - каким образом работает индексирование по списку на низком уровне. Как из оперативной памяти мы получаем нужное нам значение?

Python Developer
Объект - список Вопрос - каким образом работает ин...

Нам известен адрес начала списка, по индексу вычисляется смещение относительно адреса начала списка

Python-Developer Автор вопроса
Tishka17
знаешь что такое адреса памяти?

Если правильно помню, это местоположение объекта в оперативной памяти. В питоне можно проверить с помощью функции id()

Python Developer
Объект - список Вопрос - каким образом работает ин...

Списки с хэшами дела не имеют, индекс списка - всегда целочисленный.

Python Developer
Объект - список Вопрос - каким образом работает ин...

Можешь посмотреть вот тут, это про Rust, но основная идея должна быть понятна. https://www.youtube.com/watch?v=rDoqT-a6\UFg

Jack Bolt
Популярненько https://m.youtube.com/watch?v=Wh22_O...

Ну кстати там про массивы, про хранение и поиск ячейки памяти по индексу списка там ничего нет

Ded
Ну кстати там про массивы, про хранение и поиск яч...

Как будто питоний список в душе не массив...

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта