列表推导(list comprehensions)
场景1:将一个三维列表中所有一维数据为a的元素合并,组成新的二维列表。
最简单的方法:新建列表,遍历原三维列表,判断一维数据是否为a,若为a,则将该元素append至新列表中。
缺点:代码太繁琐,对于Python而言,执行速度会变慢很多。
针对场景1,我们首先应该想到用列表解析式来解决处理,一行代码即可解决:
lista = [item for item in array if item[0] == 'a']
那么,何为列表解析式?
官方解释
三种主要的写法有:
第一种:if X is None;
第二种:if not X;
当X为None, False, 空字符串””, 0, 空列表[], 空字典{}, 空元组()这些时,not X为真,即无法分辨出他们之间的不同。
第三种:if not X is None;
在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False。除此之外的其它对象都会被转化成True。
在命令if not 1中,1便会转换为bool类型的True。not是
本文实例讲述了Python列表解析操作。分享给大家供大家参考,具体如下:
列表解析
Python 的强大特性之一是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个元素应用一个函数,从而将一个 list 映射为另一个 list。
列表解析,又叫列表推导式( list comprehension)
列表解析比 for 更精简,运行更快,特别是对于较大的数据集合
列表解析可以替代绝大多数需要用到 map和 filter的场合
列表推导式提供了一个创建链表的简单途径