所以我列出 mList = ['list1','list2','list8','list99']
我想在该列表中选择一个值'list8',并将其设置为列表中的第一个条目 ['list2','list1','list8','list99']
如何重新排序此条目 我现在能想到的只是 - 获得索引 - 删除那个条目 -insert(0,entry)
干净的方法是什么?
欢呼声..
答案 0 :(得分:2)
你的方法是合理的,但我会直接在值上使用remove,而不是先找到索引然后删除:
mList.remove('list2')
mList.insert(0, 'list2')
请注意,这些操作在列表中效率低下。追加到列表末尾比在开头插入更有效。您可能希望使用其他数据结构,例如链接列表。另一种方法是颠倒存储元素的顺序。
答案 1 :(得分:2)
其他人发布的解决方案可以维护未移到前面的项目的顺序。如果您不关心这一点,只需将第一个项目与想要移动到前面的项目交换更快。
mList = ['list1', 'list2', 'list8', 'list99']
i = mList.index('list8')
mList[0], mList[i] = mList[i], mList[0]
print mList # ['list8', 'list2', 'list1', 'list99']
答案 2 :(得分:0)
我不确定我是否理解这个问题,但这种方法可能会有效
mList = ['list1', 'list2', 'list8', 'list99']
idx = 2
mlist.insert(0, mlist.pop(idx))
将产生:
['list8', 'list1', 'list2', 'list99']
这是另一种方式:
mList = ['list1', 'list2', 'list8', 'list99']
value = 'list8'
mlist.remove(value)
mlist.insert(0, value)
答案 3 :(得分:0)
def move_up(val, lst):
lst.insert(0, lst.pop(lst.index(val)))
move_up('list8', mList)