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

Python clean方法获取列表中的条目并将其设置为第一个条目,python,list,Python,List,所以我列出 mList=['list1'、'list2'、'list8'、'list99'] 我想在列表中选择一个值,比如'list8',并使其成为列表中的第一个条目 ['list2','list1','list8','list99'] 如何重新排序这一条目 我现在能想到的就是 -获取索引 -删除该条目 -插入(0,条目) 什么是干净的方法 干杯。我不确定我是否正确理解了这个问题,但这种方法可能有效 mList = ['list1', 'list2', 'list8', 'list99'] id

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

我想在列表中选择一个值,比如'list8',并使其成为列表中的第一个条目 ['list2','list1','list8','list99']

如何重新排序这一条目 我现在能想到的就是 -获取索引 -删除该条目 -插入(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)

我不确定我是否正确理解了这个问题,但这种方法可能有效

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)

您的方法是合理的,但我会直接对值使用remove,而不是先查找索引,然后再删除:

mList.remove('list2')
mList.insert(0, 'list2')

请注意,这些操作在列表中效率低下。在列表末尾追加比在开头插入更有效。您可能需要使用不同的数据结构,如链表。另一种方法是颠倒存储元素的顺序

您的方法是合理的,但我会直接对值使用remove,而不是先找到索引,然后再删除:

mList.remove('list2')
mList.insert(0, 'list2')
def move_up(val, lst):
    lst.insert(0, lst.pop(lst.index(val)))
move_up('list8', mList)

请注意,这些操作在列表中效率低下。在列表末尾追加比在开头插入更有效。您可能需要使用不同的数据结构,如链表。另一种方法是颠倒存储元素的顺序

其他人发布了解决方案,这些解决方案保持了未移动到前面的项目的顺序。如果你不在乎这一点,只需将第一个项目与你想移动到前面的项目进行交换就可以更快

def move_up(val, lst):
    lst.insert(0, lst.pop(lst.index(val)))
move_up('list8', mList)
mList = ['list1', 'list2', 'list8', 'list99']

i = mList.index('list8')
mList[0], mList[i] = mList[i], mList[0]

print mList   # ['list8', 'list2', 'list1', 'list99']

其他人则发布了一些解决方案,这些解决方案可以维持未移动到前面的项目的顺序。如果你不在乎这一点,只需将第一个项目与你想移动到前面的项目进行交换就可以更快

mList = ['list1', 'list2', 'list8', 'list99']

i = mList.index('list8')
mList[0], mList[i] = mList[i], mList[0]

print mList   # ['list8', 'list2', 'list1', 'list99']

您的问题似乎包含错误。预期结果不应该是
['list8'、'list1'、'list2'、'list99']
?您的问题似乎包含错误。预期的结果不应该是
['list8','list1','list2','list99']
?不知道直接删除,这样更好,列表中只有您的建议,在Python中使用链接列表很有趣。如何做到这一点?@jathanism:我不知道直接删除,这样更好,列表中只有你的建议,在Python中使用链接列表很有趣。一个人怎么可能做到这一点?@jathanism: