欢迎访问宙启技术站
智能推送

使用列表推导式快速生成复杂列表

发布时间: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的简洁高效特点。但是在使用列表推导式的时候要注意代码的可读性和可维护性,避免出现过长的语句和复杂的逻辑判断,以提高代码的可读性和可维护性。