list extend() to index, inserting list elements not only to the end(list extend() 索引,不仅将列表元素插入到末尾)
问题描述
我正在寻找最 Pythonic 的方式来实现列表 extend
函数的一个版本,它扩展到给定的索引而不是列表的末尾.
I'm looking for the most pythonic way to implement a version of the list extend
function, where it extends to a given index instead of the end of the list.
a_list = [ "I", "rad", "list" ]
b_list = [ "am", "a" ]
a_list.my_extend( b_list, 1 ) # insert the items from b_list into a_list at index 1
print( a_list ) # would output: ['I', 'am', 'a', 'rad', 'list']
有没有办法在不建立新列表的情况下做到这一点,像这样?
Is there a way to do this without building a new list, like this?
a_list = [ "I", "rad", "list" ]
b_list = [ "am", "a" ]
c_list = []
c_list.extend( a_list[:1] )
c_list.extend( b_list )
c_list.extend( a_list[1:] )
print( c_list ) # outputs: ['I', 'am', 'a', 'rad', 'list']
这种方法实际上并没有那么糟糕,但我有一种预感,它可能会更容易.可以吗?
That approach isn't actually so bad, but I have a hunch it could be easier. Could it?
推荐答案
当然可以使用切片索引:
Sure, you can use slice indexing:
a_list[1:1] = b_list
为了演示一般算法,如果您要在假设的自定义 list
类中实现 my_extend
函数,它看起来像这样:
Just to demonstrate the general algorithm, if you were to implement the my_extend
function in a hypothetical custom list
class, it would look like this:
def my_extend(self, other_list, index):
self[index:index] = other_list
但实际上不要让它成为一个函数,只需在需要时使用切片符号即可.
But don't actually make that a function, just use the slice notation when you need to.
这篇关于list extend() 索引,不仅将列表元素插入到末尾的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:list extend() 索引,不仅将列表元素插入到末尾
基础教程推荐
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 筛选NumPy数组 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01