Python中列表的底层结构

Python中列表的底层结构,python,Python,根据我阅读的参考资料,python中的列表数据结构是用数组实现的。但是,python列表可以包含不同类型的对象。如果它的底层数据结构是数组,那么数组如何包含不同类型的对象 数组是特定数据类型,我错了吗?您错了,它是特定类型的数组。Python列表实现为对其他Python对象(直接或间接地,内存地址)的引用数组。它还有更多的含义,因为还有很多家务工作。你错了,它是一个特定类型的数组。Python列表实现为对其他Python对象(直接或间接地,内存地址)的引用数组。还有更多的内容,因为还有很多内部管

根据我阅读的参考资料,python中的列表数据结构是用数组实现的。但是,python列表可以包含不同类型的对象。如果它的底层数据结构是数组,那么数组如何包含不同类型的对象


数组是特定数据类型,我错了吗?

您错了,它是特定类型的数组。Python列表实现为对其他Python对象(直接或间接地,内存地址)的引用数组。它还有更多的含义,因为还有很多家务工作。

你错了,它是一个特定类型的数组。Python列表实现为对其他Python对象(直接或间接地,内存地址)的引用数组。还有更多的内容,因为还有很多内部管理工作。

Python列出了对数据的存储引用,而不是数据本身。直接来自python源代码:

对象总是通过“PyObject*”类型的指针访问。 类型“PyObject”是仅包含引用的结构 计数和类型指针。为对象分配的实际内存 包含只有在强制转换后才能访问的其他数据 指向指向较长结构类型的指针


如果您需要更详细的信息,源代码中的注释是详细的和描述性的。

Python列出存储对数据的引用,而不是数据本身。直接来自python源代码:

对象总是通过“PyObject*”类型的指针访问。 类型“PyObject”是仅包含引用的结构 计数和类型指针。为对象分配的实际内存 包含只有在强制转换后才能访问的其他数据 指向指向较长结构类型的指针


如果您需要更详细的信息,源代码中的注释是详细的和描述性的。

我在这里给您举一个程序示例,您可以很容易地理解对象如何存储在列表中

class my_class:
    def __init__(self):
        self.var=1
    def setparameter(self,txt):
        self.txt=txt

objects = [my_class() for i in range(3)] # creates multiple objects here
for obj in objects:
    obj.setparameter(5)
列表中的对象是类实例的指针。查看其数据结构

请参见另一个示例,这些列表是子列表的指针

名单

 a=[[1,2,34],[12,4,5]]

我在这里给你们举一个程序示例,你们可以很容易地理解对象是如何存储在列表中的

class my_class:
    def __init__(self):
        self.var=1
    def setparameter(self,txt):
        self.txt=txt

objects = [my_class() for i in range(3)] # creates multiple objects here
for obj in objects:
    obj.setparameter(5)
列表中的对象是类实例的指针。查看其数据结构

请参见另一个示例,这些列表是子列表的指针

名单

 a=[[1,2,34],[12,4,5]]