1. 引言 在Python中有非常多且好用的技巧,其中使用最多的是列表生成式,往往可以将复杂的逻辑用简单的语言来实现,本文重点介绍列表生成式应用的八重境界。 闲话少说,我们直接
1. 引言在Python中有非常多且好用的技巧,其中使用最多的是列表生成式,往往可以将复杂的逻辑用简单的语言来实现,本文重点介绍列表生成式应用的八重境界。 2. Level1: 基础用法最最简单的列表生成式,举例如下:
上述代码实现了对列表中单个元素求平方的操作。 3. Level2: 加入条件语句其实,我们可以在列表生成式中添加if来获取我们需要的元素,举例如下:
上述代码中,我们添加了一个条件来决定在列表生成式中应该保留哪些元素。这里我们的条件是,如果n<4,则只保留小于4的数。 4. Level3: 加入 enumerate()我们知道,枚举函数enumerate()可以同时生成元素以及相应的元素的索引。如果我们需要元素的索引以及元素,我们可以在列表生成式中使用函数enumerate()。 举例如下:
5. Level4: 加入 zip()更进一步,我们知道函数zip()可以非常方便地使我们同时遍历2个或多个列表。 在列表生成式中加入函数zip(),样例如下:
6. Level5: 加入三目运算符三元运算符A if condition else B允许我们根据条件将每个元素转换为其他元素。 在列表生成式中同样可以使用三目运算符,样例如下:
7. Level6: 嵌套循环其实,我们当然也可以在列表生成式中使用嵌套循环,我们来看个例子,如下:
实质上,上述实现等价代码如下:
8. Level7: 嵌套列表生成式更高级一点,我们可以在列表生成式中嵌套列表生成式,举例如下:
9. Level8: 合并上述所有技巧最后的最后,让我们将上述介绍的几个技巧进行合并,我们来看如下例子:
上述实现意义不大,我们尝试应用上了上面介绍的所有技巧,但是毕竟代码可读性太大。其主要目的还是为了说明我们可以结合多种技巧,来使我们的列表生成式实现更加强大的功能。 10. 应用栗子好吧,我们来看个实际的应用例子吧! 假设我们班级上有如下同学信息:
上述列表展示了每个学生的姓名、性别和考试成绩,这里假设如果一个学生的平均分数≥ 50,那么这个学生有资格获奖。这里我们需要编写代码,来找到上述列表中有资格获奖的男生。 样例代码如下:
11. 总结本文重点介绍了理解Python中的列表生成式的八重境界,并给出了相应的代码示例。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27