簡體   English   中英

將包含更多列表的多個列表鏈接在一起

[英]Chaining together several lists that consist of more lists

我目前正在為我的計算機科學簡介講座做一個項目,現在遇到了以下問題:我的代碼的輸出是包含列表的列表,我想將所有這些列表中的所有對象放入一個大列表中。 我們的輸入看起來像這樣:

[[['0452']], 
 [['1234'], ['176']], 
 [['2245'], ['2345', '2345'], ['2545']], 
 [['3452', '3432'], ['3523']],
 [['44563'], ['4523']],
 [['5234', '5234', '5234'], ['5435'], ['563']],
 [['6435']], 
 [['7134']],
 [['8324']], 
 ['923', '9936']
]

您可以為此使用遞歸,因為並非所有子列表的長度都相同:

def unpack(iterable):
    res = []
    for x in iterable:
      if isinstance(x, list):
          res.extend(unpack(x))
      else:
          res.append(x)
    return res

>>> data = data = [[['0452']], [['1234'], ['176']], [['2245'], ['2345', '2345'], ['2545']], [['3452', '3432'], ['3523']], [['44563'], ['4523']], [['5234', '5234', '5234'], ['5435'], ['563']], [['6435']], [['7134']], [['8324']], ['923', '9936']]
>>> unpack(data)
['0452', '1234', '176', '2245', '2345', '2345', '2545', '3452', '3432', '3523', '44563', '4523', '5234', '5234', '5234', '5435', '563', '6435', '7134', '8324', '923', '9936']
big_list=[element for list_ in bigger_list for element in list_]

這是解決方案:

首先將您的輸出轉換為字符串,然后執行以下操作:

import re
text= "[['0452']], [['1234'], ['176']], [['2245'], ['2345', '2345'], ['2545']], [['3452', '3432'], ['3523']], [['44563'], ['4523']], [['5234', '5234', '5234'], ['5435'], ['563']], [['6435']], [['7134']], [['8324']], ['923', '9936']]" 
pattern = r'[^0-9]'
text = re.sub(pattern, '  ', text)
print(text)

結果:

['0452', '1234', '176', '2245', '2345', '2345', '2545', '3452', '3432', '3523', '44563', '4523', '5234', '5234', '5234', '5435', '563', '6435', '7134', '8324', '923', '9936']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM