Hi! 大家好,我是Eric,这次教大家Python的列表推导(list comprehension)!
■ 列表推导(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章