通过给定列表['a', 'b', 'c']
搜索元素b
的pythonic方式是什么?替换它并插入多个项b1, b2, b3
,以便列表最终显示为['a', 'b1', 'b2', 'b3', 'c']
答案 0 :(得分:19)
使用切片表示法:
>>> lst = ['a', 'b', 'c']
>>> i = lst.index('b') # This raises ValueError if there's no 'b' in the list.
>>> lst[i:i+1] = 'b1', 'b2', 'b3'
>>> lst
['a', 'b1', 'b2', 'b3', 'c']
注意这只会更改第一个匹配的项目。
答案 1 :(得分:3)
替代方法:使用itertools.chain.from_iterable
>>> b = ["b1", "b2", "b3"]
>>> a = ['a', 'b', 'c']
>>> a = [b if x=='b' else [x] for x in a]
>>> a
['a', ['b1', 'b2', 'b3'], 'c']
>>> import itertools
>>> list(itertools.chain.from_iterable(a))
['a', 'b1', 'b2', 'b3', 'c']
>>>