所以我列出 mList = [「列表1」,「列表2」,「list8」,「list99」]乾淨的方法來獲取列表中的條目,並將其設置爲第一個條目
我想選擇在該列表中的值說'list8'並且使其成爲列表中的第一個條目 ['list2','list1','list8','list99']
如何重新排序一個條目 所有我能在那一刻想到的是 -get指數 -remove該條目 -insert(0,進入)
什麼是乾淨的方式來做到這一點?
歡呼聲..
所以我列出 mList = [「列表1」,「列表2」,「list8」,「list99」]乾淨的方法來獲取列表中的條目,並將其設置爲第一個條目
我想選擇在該列表中的值說'list8'並且使其成爲列表中的第一個條目 ['list2','list1','list8','list99']
如何重新排序一個條目 所有我能在那一刻想到的是 -get指數 -remove該條目 -insert(0,進入)
什麼是乾淨的方式來做到這一點?
歡呼聲..
不知道我理解的問題的權利,但這種方法可能工作
mList = ['list1', 'list2', 'list8', 'list99']
idx = 2
mlist.insert(0, mlist.pop(idx))
將產生:
['list8', 'list1', 'list2', 'list99']
這裏是另一種方式:
mList = ['list1', 'list2', 'list8', 'list99']
value = 'list8'
mlist.remove(value)
mlist.insert(0, value)
您的應用蟑螂是合理的,但我會用該值直接刪除,而不是首先找到索引,然後刪除:
mList.remove('list2')
mList.insert(0, 'list2')
需要注意的是,這些操作都是名單上效率低下。追加到列表的末尾比在開頭插入更有效。您可能想要使用不同的數據結構,如鏈接列表。另一種方法是顛倒你存儲元素的順序。
不知道直接刪除,這是更好的,th列表將只有<100條目 – 2010-09-09 20:54:51
你在Python中使用鏈表的建議很有趣。一個人會怎麼做? – jathanism 2010-09-09 20:58:20
@jathanism:http://stackoverflow.com/questions/2154946/python-linked-list-o1-insert-remove – 2010-09-09 21:16:40
def move_up(val, lst):
lst.insert(0, lst.pop(lst.index(val)))
move_up('list8', mList)
其他人已經發布瞭解決方案,保持不移動到前面的項目的順序。如果你不關心這個問題,只需將第一個項目換成你想要移動到前面的項目就可以了。
mList = ['list1', 'list2', 'list8', 'list99']
i = mList.index('list8')
mList[0], mList[i] = mList[i], mList[0]
print mList # ['list8', 'list2', 'list1', 'list99']
您的問題似乎包含錯誤。不應該預期的結果是'['list8','list1','list2','list99']'? – 2010-09-09 20:44:12
是的,我的錯誤 – 2010-09-09 20:54:02