基于Python列表解析(列表推导式)
列表解析——用来动态地创建列表
[exprforiter_variniterableifcond_expr]
例子一:
map(lambdax:x**2,range(6)) [0,1,4,9,16,25]
[x**2forxinrange(6)] [0,1,4,9,16,25]
列表解析式可以取代内建的map()函数以及lambda,而且++效率更高++。
例子二:
seq=[11,10,9,8,7,6] filter(lambdax:x%2,seq) [11,9,7]
[xforxinseqifx%2] [11,9,7]
例子三:
找出文本中最长的词
#第一个最长的词 longest='' forwordintext: iflen(word)>len(longest): longest=word
#所有最长的词 maxlen=max(len(word)forwordintext)#生成器表达式 [wordforwordintextiflen(word)==maxlen]#链表推导式
不足:列表解析得一个不足就是必要生成所有数据,用于创建整个列表。这可能对有大量数据得迭代其有负面效应。
++解决方法++:生成器表达式,通过结合列表解析和生成器解决了这个问题。
嵌套列表推导式
例一
all_data=[[1,3,5,7,9], [2,4,6,8,10]] result=[] fornumsinall_data: temp_num=[numfornuminnumsifnum>=5] result.extend(temp_num)
嵌套列表推导式
result=[numfornumsinall_datafornuminnumsifnum>=5]
推导式中for的部分是按嵌套顺序排列的。
例二
some_tuples=[(1,2,3),(4,5,6),(7,8,9)] flattened=[xfortupinsome_tuplesforxintup] flattened [1,2,3,4,5,6,7,8,9]
以上这篇基于Python列表解析(列表推导式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。