换句话说,我想完成如下的事情:
- a = [1,2,3,7,8]
- b = [4,5,6]
- # some magic here to insert list b into list a at index 3 so that
- a = [1,4,6,8]
解决方法
您可以分配到
slice的列表,如下所示:
- >>> a = [1,8]
- >>> b = [4,6]
- >>> a[3:3] = b
- >>> a
- [1,8]
- >>>
[3:3]可能看起来很奇怪,但是有必要将列表b中的项目正确插入到列表中.否则,如果我们要分配给a的索引,则列表b本身将被插入:
- >>> a = [1,6]
- >>> a[3] = b
- >>> a
- [1,[4,6],8]
- >>>
我试图找到明确提到这种行为的文档链接,但是不成功(如果可以找到它,请随意添加一个).所以,我只是说,做一个[3:3] = b告诉Python把列表b中的项目放在列表a的一部分[3:3]中.此外,Python将根据需要扩展列表a以适应此操作.
简而言之,这只是Python的另一个令人敬畏的功能.