列表推导式(list comprehension)是处理列表(字典、信使)的一种快捷方式,它可以将一个数据序列通过某种操作映射为另一个数据序列。
格式1:基本应用
<code>[表达式 for 变量 in 列表]/<code>
<code># 将列表中所有元素乘以2放到新的列表中 list = [3, 6, 2, 4, 7, 5] rlist = [item * 2 for item in list] print(rlist)/<code>
结果:[6, 12, 4, 8, 14, 10]
格式2:条件筛选(2种)
<code># 按条件筛选变量 [表达式 for 变量 in 列表 if 条件]/<code>
<code># 获取列表中所有大于4的元素乘以2放到新的列表中 list = [3, 6, 2, 4, 7, 5] rlist = [item * 2 for item in list if item > 4] print(rlist)/<code>
结果:[12, 14, 10]
<code># 按条件对变量进行不同操作 [表达式1 if 条件 else 表达式2 for 变量 in 列表]/<code>
<code># 列表中奇数+1,偶数+2 list = [3, 6, 2, 4, 7, 5] rlist = [item + 2 if item % 2 == 0 else item + 1 for item in list] print(rlist)/<code>
结果:[4, 8, 4, 6, 8, 6]
格式3:嵌套
<code>[表达式 for 变量 in 列表 for 变量 in 列表... ]/<code>
<code># 筛选2个列表中的偶数,按照[(2,4),(2,8),...]样式组成新的列表 list1 = [3, 6, 2, 4] list2 = [1, 5, 8, 9] rlist = [(x, y) for x in list1 for y in list2 if x % 2 == 0 and y % 2 == 0] print(rlist)/<code>
结果:[(6, 8), (2, 8), (4, 8)]