使用列表推导式快速生成复杂列表
发布时间:2023-06-17 07:11:04
列表推导式是Python中非常常用的一种语法,它可以快速生成复杂的列表,减少了手动编写循环的时间和代码冗余的问题。
列表推导式的基本语法如下所示:
[expression for target in iterable if condition]
其中expression为需要生成元素的表达式,target为可迭代对象iterable中的每一个元素,condition为可选条件表达式。
下面通过几个具体的例子来介绍列表推导式的使用方法。
1. 基本的列表推导式
生成一个由1到10的整数组成的列表, 代码如下:
list1 = [i for i in range(1, 11)] print(list1)
结果输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2. 带条件的列表推导式
生成一个由1到10的整数中偶数的列表, 代码如下:
list2 = [i for i in range(1, 11) if i % 2 == 0] print(list2)
结果输出:
[2, 4, 6, 8, 10]
3. 多个循环条件的列表推导式
生成一个由两个列表中的元素相乘组成的列表,代码如下:
list3 = [i*j for i in [1,2,3] for j in [4,5,6]] print(list3)
结果输出:
[4, 5, 6, 8, 10, 12, 12, 15, 18]
4. 带条件和多个循环条件的列表推导式
生成一个由0到9的整数的平方且只取小于50的数,代码如下:
list4 = [i*i for i in range(10) if i*i < 50] print(list4)
结果输出:
[0, 1, 4, 9, 16, 25, 36, 49]
5. 多层嵌套循环的列表推导式
生成一个由1到100之间的所有素数组成的列表,代码如下:
list5 = [i for i in range(2, 101) if all(i % j != 0 for j in range(2, i))] print(list5)
结果输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
总结一下,列表推导式可以快速生成复杂的列表,并且可以带有条件和多层嵌套的循环,充分发挥了Python的简洁高效特点。但是在使用列表推导式的时候要注意代码的可读性和可维护性,避免出现过长的语句和复杂的逻辑判断,以提高代码的可读性和可维护性。
