我有一个由元素组成的数组。我想把一个给定的元素放在最前面,但是不改变其他元素的顺序。您有没有建议最干净的语法方式?
这是我能想到的最好方法,但是似乎使用N log N操作时,当使用N操作可以完成时,这样做不好。
mylist = sorted(mylist,
key=lambda x: x == targetvalue,
reverse=True)
我有一个由元素组成的数组。我想把一个给定的元素放在最前面,但是不改变其他元素的顺序。您有没有建议最干净的语法方式?
这是我能想到的最好方法,但是似乎使用N log N操作时,当使用N操作可以完成时,这样做不好。
mylist = sorted(mylist,
key=lambda x: x == targetvalue,
reverse=True)
我的建议是:
mylist.insert(0, mylist.pop(mylist.index(targetvalue)))
要将(例如)第6个元素放到前面,请使用:
mylist.insert(0, mylist.pop(5))
(Python使用标准的以0为基础的索引)
index = mylist.index(targetvalue)
- Elijas Dapšauskas
mylist.remove(目标值)
mylist.insert(0, 目标值)
x = targetvalue
for i in range(len(mylist)):
if(mylist[i] == x):
mylist = [mylist[i]] + mylist[:i] + mylist[i+1:]
([False, False, False, False, ..., False, True, False, False ... False ])
)上运行速度特别快。 - r3m0t