写点什么

浅谈 Python 中遇到 extend 和 append,该怎么区别使用

用户头像
莫陌默
关注
发布于: 2021 年 02 月 24 日

在看其他大佬文章时遇到的问题:


展开列表

该方法将通过递归的方式将列表的嵌套展开为单个列表。


def spread(arg):    ret = []    for i in arg:        if isinstance(i, list):            ret.extend(i)        else:            ret.append(i)    return retdef deep_flatten(lst):    result = []    result.extend(    spread(list(map(lambda x: deep_flatten(x) if type(x) == list else x, lst))))    return result
复制代码

中 line 5 和 line 7 对于 extend()和 append()函数理解不清楚,特此记录。


解释:


append() 方法向列表的尾部添加一个新的元素。只接受一个参数。

extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。


所以,当 i 为列表类型的时候,将 i 中的每个元素添加到原列表,不为 list 类型时,添加到原列表尾部。


结果


deep_flatten([1, [2], [[3],[6],[[7,8]] ,4], 5]) # [1,2,3,6,7,8,4,5]
复制代码


发布于: 2021 年 02 月 24 日阅读数: 40
用户头像

莫陌默

关注

还未添加个人签名 2020.05.25 加入

还未添加个人简介

评论

发布
暂无评论
浅谈Python中遇到extend和append,该怎么区别使用