同时插入和扩展列表?

kme*_*lvn 6 python

有没有更好的方法同时插入和扩展列表?这是我目前正在做的一个丑陋的例子.(假设我想在'2'元素之后插入'2.4'和'2.6'):

>>> a = ['1', '2', '3', '4']
>>> b = a[:a.index('2')+1] + ['2.4', '2.6'] + a[a.index('2'):]
>>> b
<<< ['1', '2', '2.4', '2.6', '3', '4']
Run Code Online (Sandbox Code Playgroud)

Mar*_*rot 15

>>> a = ['1', '2', '3', '4']
>>> a
['1', '2', '3', '4']
>>> i = a.index('2') + 1  # after the item '2'
>>> a[i:i] = ['2.4', '2.6']
>>> a
['1', '2', '2.4', '2.6', '3', '4']
>>>
Run Code Online (Sandbox Code Playgroud)


zwe*_*nde 5

您可以使用list.insert(i, x)Python定义的单个元素轻松插入s[i:i] = [x].

a = ['1', '2', '3', '4']
for elem in reversed(['2.4', '2.6']):
    a.insert(a.index('2')+1, elem))
Run Code Online (Sandbox Code Playgroud)

如果要插入列表,可以创建省略[]的函数:

def iextend(lst, i, x):
    lst[i:i] = x

a = ['1', '2', '3', '4']
iextend(a, a.index('2')+1, ['2.4', '2.6']
# a  = ['1', '2', '2.4', '2.6', '3', '4']
Run Code Online (Sandbox Code Playgroud)