1.1 --- a/lib/__builtins__/list.py Tue Apr 04 00:27:38 2017 +0200
1.2 +++ b/lib/__builtins__/list.py Tue Apr 04 00:28:08 2017 +0200
1.3 @@ -65,7 +65,27 @@
1.4
1.5 list_append(self, value)
1.6
1.7 - def insert(self, i, value): pass
1.8 + def insert(self, index, value):
1.9 +
1.10 + "Insert at 'index' the given 'value'."
1.11 +
1.12 + length = self.__len__()
1.13 + index = _get_absolute_index(index, length)
1.14 +
1.15 + if index == length:
1.16 + self.append(value)
1.17 + return
1.18 + elif index > length:
1.19 + raise IndexError, index
1.20 +
1.21 + i = length - 1
1.22 + self.append(self.__getitem__(i))
1.23 +
1.24 + while i > index:
1.25 + self.__setitem__(i, self.__getitem__(i - 1))
1.26 + i -= 1
1.27 +
1.28 + self.__setitem__(index, value)
1.29
1.30 def extend(self, iterable):
1.31
1.32 @@ -85,7 +105,20 @@
1.33 list_setsize(self.__data__, self.__len__() - 1)
1.34 return i
1.35
1.36 - def reverse(self): pass
1.37 + def reverse(self):
1.38 +
1.39 + "Reverse the list in-place."
1.40 +
1.41 + length = self.__len__()
1.42 + i = 0
1.43 + j = length - 1
1.44 +
1.45 + while i < j:
1.46 + item = self.__getitem__(j)
1.47 + self.__setitem__(j, self.__getitem__(i))
1.48 + self.__setitem__(i, item)
1.49 + i += 1
1.50 + j -= 1
1.51
1.52 def sort(self, cmp=None, key=None, reverse=0): pass
1.53