我想将项目移动到列表中的第一个索引。如何简化代码?

时间:2014-12-24 15:12:50

标签: python

这是我的代码。

lst=['0','1','2','3','4']
i = lst.index('2')
lst.pop(i)
tmp=[]
tmp.append('2')
tmp.extend(lst)
lst = tmp
print lst #output:['2','0','1','3','4']

现在我想编写漂亮的代码。我认为可能有改进的余地。所以,我希望有人能够解释和指导我。谢谢!

3 个答案:

答案 0 :(得分:3)

sorted([0,1,2,3,4,5], key=lambda x: x == 2, reverse=True)

答案 1 :(得分:2)

作为替代答案,您可以使用切片:

>>> i = lst.index('2')
>>> ['2']+lst[:i]+lst[i+1:]
['2', '0', '1', '3', '4']

您可以将其嵌入到函数中:

>>> def move(elem,l):
...   i = l.index(elem)
...   return [elem]+lst[:i]+lst[i+1:]
... 
>>> move('2',lst)
['2', '0', '1', '3', '4']

答案 2 :(得分:1)

到位(改变清单):

lst = lst.pop(lst.index(2)) and (not lst.insert(0, 2)) and lst

为结果创建新列表:

[2] + (lst.pop(lst.index(2)) and lst)