python sum高级用法

编程入门 行业动态 更新时间:2024-10-07 14:32:58

python sum<a href=https://www.elefans.com/category/jswz/34/1770104.html style=高级用法"/>

python sum高级用法

之前python里面sum的理解不太到位,今天看到了一个碾平list的answer. 看完才明白,sum还可以加数组,加字符串。
碾平list的代码是这样的。

s = [1,[2,[3,4]]]
flat = lambda L: sum(map(flat, L), []) if isinstance(L, list) else [L]
res = flat(s)
print(res)
a = [1,2,[3,4],[[5,6],[7,8, [1,[3,4,[5]]]]]]
flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
print(flatten(a))

普通的递归写法是这样的:

res = []
def fun(s):for i in s:if isinstance(i, list):fun(i)else:res.append(i)
fun(s)
print(res) 

这个题并不是sum的重点,重点是最上面的第一种写法。sum(map(flat, L), [])
这段代码是什么意思?
sum(sequence[,start]) sum函数可以带初始值,如果是空列表,就可以进行列表合并,但是,前面的必须得是列表嵌套列表的样式才行。

>>> a = [[1],[2,3],[4,5,6]]
>>> sum(a, [])
[1, 2, 3, 4, 5, 6]

这样的话,就很容易看明白上面的lambda函数是如果实现的了。

参考:

更多推荐

python sum高级用法

本文发布于:2024-03-23 19:25:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1741887.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:高级   python   sum

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!