clean方法获取列表中的条目并将其设置为第一个条目

时间:2010-09-09 20:36:48

标签: python list

所以我列出 mList = ['list1','list2','list8','list99']

我想在该列表中选择一个值'list8',并将其设置为列表中的第一个条目 ['list2','list1','list8','list99']

如何重新排序此条目 我现在能想到的只是 - 获得索引 - 删除那个条目 -insert(0,entry)

干净的方法是什么?

欢呼声..

4 个答案:

答案 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)