5.11Python 列表推导式——轻量级循环
Posted by 撒得一地 on 2016年4月16日 in python教程
上一篇: 5.10Python del删除语句
下一篇: 6.1 Python创建函数
下一篇: 6.1 Python创建函数
列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法。它的工作方式类似于for循环,必要时也可以加入if条件语句完善推到式。
列表推导式标准格式
[Expression for Variable in list] 也就是:[ 表达式 for 变量 in 列表] 如果需要加入if条件语句则是:[表达式 for 变量 in 列表 if 条件]
列表推导式操作实例:
>>> [x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] #注:range(10)即列表[0,1,2,3,4,5,6,7,8,9]
加入if条件判断语句的列表推导式:
比如要取列表a中的偶数
>>> a = [1,2,3,4,5,6,7,8,9,10] >>> [x for x in a if x % 2 == 0] [2, 4, 6, 8, 10]
也可以增加更多for语句的部分:
>>> [(x,y) for x in range(3) for y in range(3)] [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
作为对比,下面的代码使用两个for语句创建相同的列表:
>>> result = [] >>> for x in range(3): ... for y in range(3): ... result.append((x,y)) ... >>> result [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
也可以和if字句联合使用,像以前一样:
>>> girls = ['alice','maria','xiaorui'] >>> boys = ['mike','bob','alon'] >>> [b+'+'+g for b in boys for g in girls if b[0] == g[0]] ['mike+maria', 'alon+alice']
这样就得到了那些名字首字母相同的男孩和女孩。
上一篇: 5.10Python del删除语句
下一篇: 6.1 Python创建函数
下一篇: 6.1 Python创建函数