python数组数据结构

时间:2016-10-18 02:35:40

标签: data-structures initialization

python中的数据结构是否等同于cpp中的数组? 一些元素被初始化而一些元素没有? 例如,在python列表中:[1,2,3],元素必须按顺序填充 在cpp数组中可以是[0] == 0,1 - 任意,未初始化,a [2] == 2

python中有一个cpp数组等效结构吗? ps,python数组似乎不等价,所有元素也必须按顺序填充

enter image description here

2 个答案:

答案 0 :(得分:1)

也许StackOverflow上的这个答案可能正是你要找的?

How to create a fix size list in python?

答案 1 :(得分:0)

您可以使用字典将某种包装器组合在一起:

class CppArray:
    def __init__(self, value):
        if value == None:
            self.data = {}
            self.length = 0
        else:
            self.data = { 0: value }
            self.length = 1

    def insert(self, index, value):
        while index in self.data:
            tmp = self.data[index]
            self.data[index] = value
            value = tmp
            index = index + 1
        self.data[index] = value
        if index >= self.length:
            self.length = index + 1

    def __getitem__(self, index):
        if (index < 0 or index >= self.length):
            # must create IndexException
            raise IndexException("Index out of range")
        if index in self.data:
            return self.data[index]
        else:
            return None

x = CppArray("i")
x.insert(0,10)
x.insert(200,30)
x[1]

显然,这个快速草图遗漏了许多细节,这些细节会使课程更有用。

有关您可以使用的特殊方法的其他想法,请检查:

https://docs.python.org/3/reference/datamodel.html