Простой синтаксис для вывода элемента списка на передний план в python? [дубликат]
На этот вопрос уже есть ответ здесь:
- переместить элемент в список? 4 ответа
У меня есть массив с набором элементов. Я хотел бы вывести данный элемент на передний план, но в остальном оставить порядок неизменным. Есть ли у людей предложения относительно самого чистого синтаксиса для этого?
Это лучшее, что я смог придумать, но кажется дурным тоном иметь N логов N операций, когда N операций может сделать.
mylist = sorted(mylist,
key=lambda x: x == targetvalue,
reverse=True)
Ура!, /YGA
5 ответов:
Для этого требуется всего две операции со списком (без индекса):
mylist.remove(targetvalue) mylist.insert(0, 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].