所以我列出 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