考慮下面的嵌套列表,如何扭轉一個嵌套的Python列表
myList=([1,[2,3],[[4,5,[6],7],8,9]])
我想扭轉這種局面將被轉換成:
myList= [[[4, 5, [6], 7], 8, 9], [2, 3], 1]
我該怎麼辦呢? 謝謝。
考慮下面的嵌套列表,如何扭轉一個嵌套的Python列表
myList=([1,[2,3],[[4,5,[6],7],8,9]])
我想扭轉這種局面將被轉換成:
myList= [[[4, 5, [6], 7], 8, 9], [2, 3], 1]
我該怎麼辦呢? 謝謝。
如果這是真的功課,它應該被標記爲這樣,否則,答案爲「用戶定義函數來扭轉名單」可能是功能:
import copy
def rev(l):
lc = copy.deepcopy(l)
lc.reverse()
return lc
這是假設你不想要將原始列表顛倒過來(並且沒有被賦予實際開發已經由運行時提供的功能的任務,這可能很有可能是這種情況,如果您已將其標記爲作業...;)
您可以定義一個遞歸過程來檢查元素是否是列表本身。如果一個元素不是一個列表,它會直接附加到結果上。如果一個元素是一個列表的過程確實與此列表元素作爲輸入等。最終結果的遞歸調用是顛倒列表:
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]
實際上它是相當容易,可以逆轉這種:
myList中=([1,[2,3],[[4,5,[6],7],8,9]])
通過
myList中= myList中[:: - 1]
這就是它!
這可以方便地與列表切片
In [60]: myList
Out[60]: [1, [2, 3], [[4, 5, [6], 7], 8, 9]]
In [61]: myList[::-1]
Out[61]: [[[4, 5, [6], 7], 8, 9], [2, 3], 1]
欲瞭解更多信息來完成,去 https://docs.python.org/2.3/whatsnew/section-slices.html
所以...'myList.reverse()'? –
如果結果是4,5,6,7,8,9,2,3,1,我真的看不到反向在哪裏?你想只顛倒列表中的前兩個元素,並把它們放在最後? –
@edalorzo,這也不會做。我被要求讓這個([1,[2,3],[[4,5,[6],7],8,9]]看起來像這樣[[[4,5,6,7] ],8,9],[2,3],1]不知道從哪裏開始:( – HussainNagri