需求1: 原始列表为 lista = [ [1], [2, 3], 4, [5, 6],[7] ], 需要使用一个表达式合并成为 [1, 2, 3, 4, 5, 6, 7]
from functools import reduce
lista = [[1], [2, 3],[4], [5,6], [7]]
result = reduce(lambda x, y: x.extend(y) or x, lista)
print(result)
在python3中,reduce() 不再是内置函数,需要从functools中导出
需求2:原始列表为 lista = [ 1, [2, 3], 4, [5, 6], 7 ], 需要使用一个表达式合并成为 [1, 2, 3, 4, 5, 6, 7]
lista = [1, [2, 3], 4, [5, 6], 7]
result = reduce(lambda x, y: x.extend(y) or x, [ i if isinstance(i, list) else [i] for i in lista])
print(result)
在上述代码中, [ i if isinstance(i, list) else [i] for i in lista] 代码片段是将 lista 中元素全部转化为 list 类型便于后续处理
知识点学习:
reduce()
lambda: 待补充
参考文献:http://zhaojunde1976.blog.163.com/blog/static/121998668201062473318815/