2016-10-18 12 views
0

pythonのデータ構造はcppの配列と同じですか? いくつかの要素は初期化されていて、いくつかは初期化されていませんか? たとえば、pythonリストで:[1,2,3]、要素を順番に入力する必要があります。 cpp配列では、[0] == 0、1 - 任意の未初期化a [2] == 2python配列のデータ構造

pythonにcpp-array相当の構造がありますか? PS、Pythonの配列が同等であるとは思われない、全ての要素が多分ここStackOverflowの上でこの答えはあなたが探しているものかもしれあまりにも順次

enter image description here

+0

を?あなたはリストの特定の要素にゴミを残すことができないのでちょうどですか? –

答えて

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