LINUX.ORG.RU

История изменений

Исправление tz4678, (текущая версия) :

А что касается связанных списков, то у них есть методы типа insertAfter, insertBefore. Для чего? - Например, для хранения чего-то типа списка дочерних элементов ноды DOM-дерева. И возвращаясь к скриптухе, моим любимым языкам, то опять же в питоне можно и списками обойтись:

In [14]: def insert_before(lst, el, v):
    ...:     p = lst.index(el)
    ...:     assert p != -1, 'Not Found'
    ...:     return lst[:p] + [v] + lst[p:]
    ...: 

In [15]: a = ['foo', 'bar', 'baz']

In [16]: insert_before(a, 'bar', 'quix')
Out[16]: ['foo', 'quix', 'bar', 'baz']

Исправление tz4678, :

А что касается связанных списков, то у них есть методы типа insertAfter, insertBefore. Для чего? - Например, для хранения чего-то типа списка дочерних элементов тега. И возвращаясь к скриптухе, моим любимым языкам, то опять же в питоне можно и списками обойтись:

In [14]: def insert_before(lst, el, v):
    ...:     p = lst.index(el)
    ...:     assert p != -1, 'Not Found'
    ...:     return lst[:p] + [v] + lst[p:]
    ...: 

In [15]: a = ['foo', 'bar', 'baz']

In [16]: insert_before(a, 'bar', 'quix')
Out[16]: ['foo', 'quix', 'bar', 'baz']

Исходная версия tz4678, :

А что касается связанных списков, то у них есть методы типа insertAfter, insertBefore. Для чего? - Например, для хранения чего-то типа списка дочерних элементов тега. И возвращаясь к скриптухе, моим любимым языкам, то опять же в питоне можно и списками обойтись:

In [14]: def insert_before(lst, el, v):
    ...:     p = lst.index(el)
    ...:     assert p != -1, 'Not Found'
    ...:     return lst[:p] + [v] + lst[p:]
    ...: 

In [15]: a = ['foo', 'bar', 'baz']

In [16]: insert_after(a, 'bar', 'quix')
Out[16]: ['foo', 'quix', 'bar', 'baz']