from collections import OrderedDict class PHPArray(OrderedDict): def __init__(self): super().__init__() self.next_max_index = 0 def __setitem__(self, key, val): if isinstance(key, int): if self.next_max_index <= key: self.next_max_index = key + 1 super().__setitem__(key, val) def __iter__(self): return self.values() def push(self, val): self[self.next_max_index] = val a = PHPArray() a.push('a') print("push('a')") print(a) a['ky'] = 'hiroki' print("a['ky'] = 'hiroki'") print(a) a.push('dag') print("a.push('dag')") print(a) a[99999] = 'shmizukawa' print("a[99999] = 'shmizukawa'") print(a) a.push('terapyon') print("a.push('terapyon')") print(a) a[9] = 'shmizukawa' print("a[9] = 'shmizukawa'") print(a) a.push('terapyonpyon') print("a.push('terapyonpyon')") print(a)