在Python中,如何将项目移动到列表中的确定索引?移动列表中的项目?
回答
使用列表的insert
方法:
l = list(...)
l.insert(index, item)
或者,你可以使用切片表示法:
l[index:index] = [item]
如果要移动一个已经在列表中指定的项目位置,则必须将其删除并将其插入新位置:
l.insert(newindex, l.pop(oldindex))
请记住,使用insert/pop方法移动列表中已有的项目将会有不同的行为,具体取决于您是向前还是向后移动o列表中。移到您选择的对象之前插入的左侧。移动到您选择的项目之后的后面。检查是否移动到列表的末尾(索引错误)。 – MKaras 2012-07-27 10:53:53
如何移动多个元素?给定一个列表a = [1,2,3,4,5,6,7,8,9],如何将它转换为[1,2,[3,4,5],6,7,8,9 ]?这可以通过一步完成还是通过列表理解来完成? – g33kz0r 2013-02-21 19:04:49
@MKaras我用Python 3.5测试了这个,你可以插入到'last index + 1'没有错误。在这种情况下,该元素仅附加到列表中。 – user2061057 2016-11-25 09:47:04
稍短的解决方案,只有移动的项目结束后,没有在任何地方是这样的:
l += [l.pop(0)]
例如:
>>> l = [1,2,3,4,5]
>>> l += [l.pop(0)]
>>> l
[2, 3, 4, 5, 1]
你也可以使用'l.append(l.pop(0))'。它只是稍微长一些,但它更具可读性。 – CoreDumpError 2017-01-11 20:27:39
@CoreDumpError是的,它也是这样。我在'.append()'之前明显学习了'+ ='语法,因此我偏向于使用它。 – Tim 2017-01-11 20:28:40
如果你不知道该项目的位置,你可能需要首先找到索引:
old_index = list1.index(item)
然后移动它:
list1.insert(new_index, list1.pop(old_index))
或恕我直言,更清洁的方式:
try:
list1.remove(item)
list1.insert(new_index, item)
except ValueError:
pass
一个解决办法很简单,但是你要知道原来的位置的索引和新位置的索引:
list1[index1],list1[index2]=list1[index2],list1[index1]
这是一个交换,而不是一个移动。 – juzzlin 2016-11-24 18:19:54
- 1. 将列表中的项目移动到堆栈或队列中
- 2. 如何移动列表项目?
- 3. 点击jQuery移动列表项目
- 4. 在列表框之间移动项目
- 5. WPF列表框 - 上下移动项目
- 6. Flex移动拖放列表项目
- 7. 在列表框之间移动项目
- 8. 移动列表可折叠项目
- 9. 移动列表项目使用jQuery
- 10. 移动项目列表不复制
- 11. 用jquery向上移动列表项目
- 12. 如何移动选定的项目移动到列表
- 13. 动画添加列表视图中的项目和项目移动
- 14. 移动在列表框中多选所有选中的项目
- 15. 用循环移动列表中的选中项目
- 16. 在列表视图C中移动选中的项目组#
- 17. HTML jQuery的举动从列表框中的项目到另一个列表框,然后移动项目上下
- 18. 使用List将项目移到列表的底部。移动
- 19. 如何数组列表中移动特定项目的第一个项目
- 20. 从列表视图中移除项目
- 21. 将项目从一个列表移动到另一个列表
- 22. JQuery将列表项目移动到无序列表结尾
- 23. 将列表框项目移动到另一个列表框?
- 24. 将项目从一个列表移动到另一个列表
- 25. c#上下移动列表框中的项目
- 26. 如何在列表框中移动相同的项目
- 27. 在SharePoint 2010列表中的文件夹之间移动项目
- 28. 将选中的项目移动到可扩展列表视图
- 29. C#拖放当前列表视图中的项目移动
- 30. jquery一次移动列表框中的所有项目
的可能的复制[简单的语法将列表元素引入python的前端?](https://stackoverflow.com/questions/1014523/simple-syntax-for-bringing-a-list-element-to-the-front-in-python ) – 2018-02-09 12:25:39