列表派生是Python语言独有的语法结构。它也可以被视为Python中的独特数据处理方法。它用于在Python中对流和过滤数据。
语法格式如下所示,可以省略。
注意:学习列表派生的前提是掌握python的循环。
列表派生词中有两个名词,一个是列表,另一个是派生词,我们非常了解的列表,即Python的数据类型,而衍生产品只是一个常见的语法定义字。称为解析,两个是相同的概念。
列表派生将返回列表,因此它适用于所有需要列表的方案。
列表派生词最常见的场景是优化简单的周期。
列表派生写作
是比较吗?在for循环语句变形后,它添加了一个,但应注意的是,列表派生词最终将形成获得的结果的新列表。查看列表衍生语法的组成。关键字的背后是一个普通周期。先前的表达式是周期中的变量,这意味着该表达式可以用来迭代背面的变量以了解内容列表衍生产品的列表。我已经掌握了内容的90%,其余就是问题熟练程度。
包括该声明后,运行后,您也可以掌握基本技能。该声明是一个判断,也是上一个周期生成的迭代变量。
这些是一般技能。列表衍生物可以支持两层周期,例如以下代码:
当然,如果您想加密(没人能理解您的代码)您的代码,则可以无限制地下降。列表推导不会限制周期层的数量。多层循环是嵌套的一层。expand三层列表导数,您可以理解
当然,在多层列表衍生物中,仍然受支持,并且以后可以使用所有先前迭代的变量,但不建议超过20%。超过之后,它将大大降低代码的可读性。
当然,如果您希望代码阅读更多,则以下方式是正确的。
现在,您有了列表推导的相对直观的概念。列表衍生产品的相应英语是某些地方基于list.grammar的最终结果。
通过两种不同的写作方式,我们必须比较效率。测试小数据范围后,没有太大影响。当周期数达到1000万个水平时,会有一些差异。
操作结果:
Python3中的列表衍生物具有本地范围。表达式中的变量和分配仅在本地工作。在表达式上下文中,同名变量也可以正常引用。本地变量不会影响它们。因此,不会存在可变泄漏的问题。例如,以下代码:
列表衍生物还支持如下的嵌套参考代码,只有意外,无法完成任何人。
迭代对象(通常列表)中的数据可以分批转换,例如以下列表的元素的两倍。
代码如下:
结果,您可以自己编译并运行。
掌握上述语法的关键是要专注于遍历,并且尾巴和周期有一个空间。
清单表达式可以筛选和过滤符合列表中条件表达式以获取目标数据的值。
掌握上述语法的关键是,其余的是要注意语法写作结构。
接下来,您可以尝试将上述编程逻辑修改为圆形语法。在学习过程中,您必须专注于理解可以相互转换的上述两个语法结构。当您可以无缝地转换两者时,您可以掌握技能。
有些人将列表作为for循环的简化版本。
有了列表衍生物的概念,字典衍生物非常简单。语法格式如下:
直接看案
您获得的结果如下:
目前,应该注意的是,字典中的键不能以同一名称出现。第二个外观涵盖了第一个值,因此获得的值为1。
最常见的地方在哪里?以下代码遍历具有键值关系的迭代对象。
实际上,您应该能够猜测Python中的这两个衍生物,语法相信您已经掌握了它。
运行后的结果:
使用元组推导的结果不是元组,而是生成器的对象。您需要特别注意。此方法将其称为某些地方的发电机的语法,而不是派生类型。
还有一个地方可以关注收集推导。首先查看代码:
由于该集合是无序且不重复的,因此将自动删除重复的元素,并且显示显示的顺序在每次不同,并且使用时很容易晕倒。
再次查看衍生语法结构,涉及一个关键字,称为迭代对象,因为我们可以尝试使用当前掌握的所有迭代对象,例如使用函数。
检查是否掌握它,您可以回答以下两个问题。
除了可以扩展知识点的迭代对象外,条件表达式还支持各种布尔操作。如果用中文使用翻译,则意味着满足条件的元素将放置在新列表中。
由于列表推导涉及数据类型,因此可以大胆地推断出还有其他衍生语法,而Python确实是这样的。
您可以继续学习以下内容,并且知识结构基本相同。
列出衍生性学习,不太关心细节,也不需要学习掌握它,因为知识点属于语法糖(编程技巧),因此在小学阶段,您可以理解。随着编程学习的加深,您自然会自然地。修改派生的派生位置。
原始:https://juejin.cn/post/7101477530615414797