在python中将列表元素放在前面的简单语法?

在python中将列表元素放在前面的简单语法?,python,Python,我有一个包含一组元素的数组。我想把一个给定的元素放在前面,但不想改变顺序。大家有没有关于最简洁的语法的建议 这是我所能想到的最好的方法,但是当一个N操作可以执行时,使用N log N操作似乎是一种不好的形式 mylist = sorted(mylist, key=lambda x: x == targetvalue, reverse=True) 干杯, /YGA要将(例如)第六个元素置于前面,请使用: my

我有一个包含一组元素的数组。我想把一个给定的元素放在前面,但不想改变顺序。大家有没有关于最简洁的语法的建议

这是我所能想到的最好的方法,但是当一个N操作可以执行时,使用N log N操作似乎是一种不好的形式

    mylist = sorted(mylist,
                    key=lambda x: x == targetvalue,
                    reverse=True)
干杯, /YGA

要将(例如)第六个元素置于前面,请使用:

mylist.insert(0, mylist.pop(5))
(python使用标准的基于0的索引)

我认为:

mylist.insert(0, mylist.pop(mylist.index(targetvalue)))
注意:下面的代码(以及您提供的示例代码)将把所有匹配的元素放在前面

x = targetvalue
for i in range(len(mylist)):
    if(mylist[i] == x):
        mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]

例如,如果mylist=[1,2,3,4,3]和x=3,这将导致[3,3,1,2,4]。

这只需要两个列表操作(无索引):

mylist.remove(targetvalue)
mylist.insert(0,targetvalue)

您的原始代码非常清晰。此外,timsort(Python的内部排序算法)在长时间运行时工作得特别快,例如您的
([False,False,False,…,False,True,False,False…False])