关于后端:Python代码阅读第20篇-展开嵌套列表2

Python 代码浏览合集介绍:为什么不举荐Python初学者间接看我的项目源码

本篇浏览的代码实现将一个蕴含根底元素和列表元素的列表开展成一个新列表的性能。

本篇浏览的代码片段来自于30-seconds-of-python。

spread

def spread(arg):
  ret = []
  for i in arg:
    ret.extend(i) if isinstance(i, list) else ret.append(i)
  return ret

# EXAMPLES
spread([1, 2, 3, [4, 5, 6], [7], 8, 9]) # [1, 2, 3, 4, 5, 6, 7, 8, 9]

spread函数将一个列表的元素平铺到一个新的列表中。spread遍历原列表所有元素,如果元素是一个 list,则应用list.extend(),否则应用list.append()

isinstance(object, classinfo)用于判断输出object是否属于classinfo类型的实例或是其子类。在这里用于判断原始列表中的元素是否是一个list

ret.extend(i)ret += i一样,应用i的内容扩大ret,将列表i中的元素一一退出到列表ret中。相似于ret[len(ret):len(ret)] = i操作。

ret.append(i)i作为一个元素增加到列表ret的开端,和ret[len(ret):len(ret)] = [i]一样。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理