Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将多个列表合并为一个列表_Python - Fatal编程技术网

在python中将多个列表合并为一个列表

在python中将多个列表合并为一个列表,python,Python,我有一个包含其他列表的列表: list_of_lists = [[['2019-03-27-16:08:21 Now:(87.0866) Epoch:(1553728101) 45(secs)ago ItemID:(51141)', '2019-03-20-16:09:21 7d:(87.2040) Epoch:(1553123361) 604785(secs)ago ItemID:(51141)', 'Interval:(1m) Diff:(-0.1174) Now_[less-than]_P

我有一个包含其他列表的列表:

list_of_lists = [[['2019-03-27-16:08:21 Now:(87.0866) Epoch:(1553728101) 45(secs)ago ItemID:(51141)', '2019-03-20-16:09:21 7d:(87.2040) Epoch:(1553123361) 604785(secs)ago ItemID:(51141)', 'Interval:(1m) Diff:(-0.1174) Now_[less-than]_Past(7d) GPM:(0.00008153) +GROWTH'], 'OK: Date:[2021-04-07 10:43:10.037075] Days.Until:[741.773648417]']]
如何将这些列表合并到一个列表中,使其看起来像这样:

['2019-03-27-16:08:21 Now:(87.0866) Epoch:(1553728101) 45(secs)ago ItemID:(51141)', '2019-03-20-16:09:21 7d:(87.2040) Epoch:(1553123361) 604785(secs)ago ItemID:(51141)', 'Interval:(1m) Diff:(-0.1174) Now_[less-than]_Past(7d) GPM:(0.00008153) +GROWTH', 'OK: Date:[2021-04-07 10:43:10.037075] Days.Until:[741.773648417]']

我在网上找到了一些代码,但它不符合我的要求:

flattened_list = [y for x in list_of_lists for y in x]

我还希望采用一种解决方案,该解决方案不需要安装任何不是默认python包一部分的模块。

使用简单的递归方法,您可以处理任何级别的嵌套:

def flat(l):
    if isinstance(l, list):
        result = []
        for i in l:
            result = result + flat(i)
        return result
    else:
        return [l]

>>> flat(list_of_lists)
['2019-03-27-16:08:21 Now:(87.0866) Epoch:(1553728101) 45(secs)ago ItemID:(51141)', '2019-03-20-16:09:21 7d:(87.2040) Epoch:(1553123361) 604785(secs)ago ItemID:(51141)', 'Interval:(1m) Diff:(-0.1174) Now_[less-than]_Past(7d) GPM:(0.00008153) +GROWTH', 'OK: Date:[2021-04-07 10:43:10.037075] Days.Until:[741.773648417]']
另一个例子:

>>> flat([1,2,[3,[4,5]],6,[7,8]])
[1, 2, 3, 4, 5, 6, 7, 8]

由于列表中的某些项包含列表,而其他项不包含列表,因此无法直接使用简单的展平选项。我建议创建一个函数,递归地展平列表(包括列表本身的项):


@Bazingaa的可能重复是不是与OP在帖子中尝试和提到的解决方案不一样?@davedwards:重复中有10多个答案。阅读并尝试它们all@davedwards:53答案要具体很好,有很多选择,谢谢
def flatten(aList):
    if not isinstance(aList,list): return [aList]
    return [ item for subList in aList for item in flatten(subList)] 

flattened_list = flatten(list_of_lists)