在Python中,經常會遇到多層列表的問題。例如:
arr = [[1, 2], [3, 4]]
如果我們想要拆開這個多層列表,可以使用列表解析式。例如:
flat_arr = [item for sublist in arr for item in sublist]
這個列表解析式的作用是先遍歷arr的每一個子列表,再遍歷每個子列表中的元素,把所有元素組成一個新的列表。
另外,如果我們想要拆開n層列表,可以使用遞歸函數。例如:
def flatten(l): if isinstance(l, list): return [item for sublist in l for item in flatten(sublist)] else: return [l] flat_arr = flatten(arr)
這個遞歸函數的作用是判斷當前元素是否為列表,如果是,則繼續遞歸拆分;如果不是,則返回一個只包含該元素的列表。
無論是列表解析式還是遞歸函數,都可以幫助我們拆開多層嵌套的列表,以便更方便地進行操作。