2012-05-21 17 views
0

考慮下面的嵌套列表,如何扭轉一個嵌套的Python列表

myList=([1,[2,3],[[4,5,[6],7],8,9]])

我想扭轉這種局面將被轉換成:

myList= [[[4, 5, [6], 7], 8, 9], [2, 3], 1]

我該怎麼辦呢? 謝謝。

+3

所以...'myList.reverse()'? –

+0

如果結果是4,5,6,7,8,9,2,3,1,我真的看不到反向在哪裏?你想只顛倒列表中的前兩個元素,並把它們放在最後? –

+0

@edalorzo,這也不會做。我被要求讓這個([1,[2,3],[[4,5,[6],7],8,9]]看起來像這樣[[[4,5,6,7] ],8,9],[2,3],1]不知道從哪裏開始:( – HussainNagri

回答

-1

如果這是真的功課,它應該被標記爲這樣,否則,答案爲「用戶定義函數來扭轉名單」可能是功能:

import copy 
def rev(l): 
    lc = copy.deepcopy(l) 
    lc.reverse() 
    return lc 

這是假設你不想要將原始列表顛倒過來(並且沒有被賦予實際開發已經由運行時提供的功能的任務,這可能很有可能是這種情況,如果您已將其標記爲作業...;)

2

您可以定義一個遞歸過程來檢查元素是否是列表本身。如果一個元素不是一個列表,它會直接附加到結果上。如果一個元素是一個列表的過程確實與此列表元素作爲輸入等。最終結果的遞歸調用是顛倒列表:

def is_list(p): 
return isinstance(p, list) 

def deep_reverse(mylist): 
result = [] 
for e in mylist: 
    if isinstance(e, list): 
     result.append(deep_reverse(e)) 
    else: 
     result.append(e) 
result.reverse() 
return result 

例如: 列表[1,[8,9 ,[4,[5,9]]]]變爲 [[[[9,5],4],9%,8],1]

0

實際上它是相當容易,可以逆轉這種:

myList中=([1,[2,3],[[4,5,[6],7],8,9]])

通過

myList中= myList中[:: - 1]

這就是它!