将包含更多列表的几个列表链接在一起

问题描述 投票:-1回答:3

我目前正在为我的计算机科学概论讲座设计一个项目,现在遇到了以下问题:我的代码输出是包含列表的列表,我希望将所有这些列表中的所有对象放入一个大列表中。我们的输出看起来像这样:

[[['0452']], 
 [['1234'], ['176']], 
 [['2245'], ['2345', '2345'], ['2545']], 
 [['3452', '3432'], ['3523']],
 [['44563'], ['4523']],
 [['5234', '5234', '5234'], ['5435'], ['563']],
 [['6435']], 
 [['7134']],
 [['8324']], 
 ['923', '9936']
]
python list
3个回答
0
投票
big_list=[element for list_ in bigger_list for element in list_]

0
投票
这是解决方法:

首先将您的输出转换为字符串,然后执行以下操作:

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']


0
投票
您可以为此使用递归:

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']
© www.soinside.com 2019 - 2024. All rights reserved.