[Python]B10─列表推导(list comprehension)

Hi! 大家好,我是Eric,这次教大家Python的列表推导(list comprehension)!
http://img2.58codes.com/2024/emoticon01.gif


■ 列表推导(list comprehension)

■ 基础列表推导

列表推导是将⼀个冗⻑的迴圈列表组成语句,压缩为⼀⾏简短易读程式码的简单⽅法
L = []for n in range(12):      L.append(n**2)      L      #与上面等价的列表推导如下所示[n**2 for n in range(12)]
列表推导的语法:[expr for var in iterable]
expr是任意合法的表达式;var是变数名;itervable是可迭代的Python物件

■ 多重迭代

有时候可能需要不只一个值建立列表,此时只要增加另一个for表达式即可
[(i, j) for i in range(2) for j in range(3)]

■ 条件控制迭代

可以透过在表达式尾部增加判断语句,进一步控制迭代的条件。
[val for val in range(20) if val % 3 > 0]

■ 其他类型推导

集合推导
{a % 3 for a in range(1000)}
字典推导
{n:n**2 for n in range(6)}
产生器表达式(generator expression)基本上和列表推导没有什么不同,区别仅仅在于产⽣器表达式是按需产⽣ 对象,⽽列表推导是⼀次产⽣全部物件。
(n**2 for n in range(12))

■ Refer to《Python 旋风之旅,[正体中文]Will保哥》的第12章


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章