2014-01-30 76 views
0

我如何重新排列以下子列表,以便我可以將索引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?我不能排序使用,因爲在指數4項可以是整數或字符串

+0

應用程序不是全部。這實際上是關於將索引4處的所有內容都移至所有子列表中的索引0 – Chris

回答

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)) 
+0

第二部分的出色解決方案,我喜歡第二部分快速高效 – Chris

2

我相信在最短的形式是:

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

使用popinsert可能會更有效,這取決於您的列表