如何重新订购一系列子列表?

时间:2014-01-30 17:42:18

标签: python list sublist

我如何重新排序以下子列表,以便我可以将索引4处的项目移动到所有子列表中的索引0?

lsta = [['not','c','d','e','app','f'],['not','c','d','e','bear','f'],['not','c','d','e','cat','f']]

Desired_List= [['app','not','c','d','e','f'],['bear','not','c','d','e','f'],['cat','not','c','d','e','f']]

我想将原始列表中的每个索引4移动到索引0?我不能使用sort,因为索引4处的项可以是整数或字符串

2 个答案:

答案 0 :(得分:3)

用于处理将原始列表的每个索引4移动到索引0的编辑:

lsta = [['not','c','d','e','app','f'],['not','c','d','e','bear','f'],['not','c','d','e','cat','f']]
Desired_List = [lst[4:5]+lst[:4]+lst[5:] for lst in lsta]

或者,如果您不需要保留原始版本,则只需使用以下内容修改lsta

for lst in lsta:
    lst.insert(0, lst.pop(4))

答案 1 :(得分:2)

我相信最短的形式是:

Desired_List= [[s[4]]+s[:4]+s[5:] for s in lsta]

使用popinsert可能会更有效,具体取决于您的列表大小