Python lists vs. arrays: How similar are they?

preview_player
Показать описание
Рекомендации по теме
Комментарии
Автор

that i mean arrays in Java or C are faster to iterate over when using primitive data types that is why Java has Int and Integer Object when building an Integer Object array its almost the same as python lists with set length. But when just using a primitive type Array the data will be stored in memory directly following each other and adding the size of your datatype to the array pointer will return the next data point for example Int64 add 64 to your pointer and there you have the pointer to the next element but with python you would have to dereference twice you increment the array pointer to get the pointer to your data. The way C implements this makes branch prediction really good because if you access one element of an Array you are likely to want to access all of them.
So the CPU can just load all of them into Cache and provide access without having cache misses. Now python might do some stuff to mittigate this but over all its gonna be a little slower.
That should also be the reason why Arrays in python are only implemented for primitive data types since otherwise lists and arrays seem to be the same.

chillidog
Автор

I'd say the use case for python arrays is communicating with extension modules. If you want to pass a collection of say ints between the python code and the C code in an extension module the array.array structures allow this quite easily, because the data is already stored as a C array and can be used without complicated copying in the glue code.

bertholdhollmann
Автор

Fully answered! but it's still weird when I think about it. Thanks anyways. great video <3

itsJustJayMusic
Автор

List: Array of Pointers (Memory addresses) to Primary Data
array.Array: Array of Primary Data, where type is restricted at array object creation

thinkingcitizen
Автор

I used array so often in C code which is very different from list.

luzengyuan