这是我的代码。
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']
现在我想编写漂亮的代码。我认为可能有改进的余地。所以,我希望有人能够解释和指导我。谢谢!
答案 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)