让我们来谈谈Python独有的东西, 它让Python程序员的工作变得非常非常好, 这就是理解.
这是我们的关键术语之一｡
领悟力｡
它们是什么？
它们实际上叫做列表理解, 集合理解, 或者字典理解.
这是Python中的一些数据类型｡
我们可以对这三种数据类型进行理解｡
顺便说一句, 当我录音的时候, 背景中有一些鸟在鸣叫｡
我想这将是很好的, 只是记录与鸟类啁啾的背景｡
我想如果你生气的话会很平静的｡
对不起, 但是嘿, 鸟儿们也得玩得开心｡
好吧, 那么这些理解又是什么呢？
它们是一种在Python中创建列表､ 集合或字典的快速方法, 而不是循环或附加到列表的一堆项上｡
让我给你们演示一下, 我的列表不是空的, 而是四个字符和hello.
我的列表点追加｡
性格｡
这样我才能最终创建这个列表｡
比如说我的清单, 我们把它打印出来
如果我单击“运行”｡
我创建了一个列表, 其中包含Hello中的字符｡
好吧, 但是｡
有没有更快､ 更干净的方法？
是的, Python中的列表理解是这样的｡
同样, 它是相当独特的｡
你在很多编程语言中看不到它, 但是使用Python的人真的很喜欢这个特性｡
我也是｡
那么, 我们如何才能做到这一点？
使用列表解析｡
我们要遵循的格式是这样的｡
我们要说帕拉布｡
为｡
可迭代的参数｡
所以当我说param的时候, 我指的是参数, 或者在我们的例子中, 它可以是一个变量, 所以我们可以随意命名它｡
我们先给这个角色命名, 就像我们在这里做的, 然后再给这个角色命名, 就像我们在这里做的｡
然后我们需要一个可迭代的｡
在我们的情况下, 我们会打招呼｡
如果我删除它并单击“运行”｡
我得到的也是一样的东西｡
所以在第三行创建时, 我创建了一个包含character和hello的列表｡
我在这里做了四个循环, 然后创建了一个列表｡
所以我喜欢这样想,
嘿, 创建一个变量, 然后我们将执行一个for循环, 对每个添加到列表中的可迭代变量说嘿｡
好吧, 我会的
让我们详细说明一下｡
假设我想做别的事｡
也算我的清单吧｡
我想创建一个快速列表, 数字范围从0到100或0到99｡
我该怎么做呢？
同样, 使用列表理解｡
我会说第四个数字｡
然后我会用什么规则呢？
我将使用一个范围, 比如0到100, 这样如果我在这里单击run｡
你看那个｡
我得到了一个很长的列表, 上面预先填充了所有这些数字｡
这很酷吧？
好吧, 我会的
但我要挑战你｡
如果我想这样呢？
但是所有的数字都应该乘以2｡
所以我想列出这个等于零的地方｡
这是两个｡
这是四个｡
这是六号｡
这是八｡
这是10｡
如此等等｡
我该怎么做呢？
实际上我们可以扩展一下这样我的列表3这次将使用我们之前看到的相同的四个循环｡
就像这样｡
但现在, 它不仅仅是变量, 而是我们希望如何作用于每个角色的表达式｡
就像我们在Lambda Expressions中看到的那样｡
所以我现在可以说麻木的时间｡
为｡
这些物品｡
所以现在如果我做我的清单三｡
嘿, 看那个｡
很不错, 不是吗？
好吧, 我会的
让我们把它变得更具挑战性｡
比如说我的清单三, 让我们在这里把它放大一点｡
我的名单｡
我想改变它, 这样在我的列表中, 我仍然保留在这里的是什么？
我有数字, 但我只想保留偶数｡
在这个例子中, 所有的都是, 即使它们被乘以了2｡
但是, 例如, 如果我们求2的幂, 让我们注释一下, 然后单击“运行”｡
我们看到有些数字不是｡
即便如此, 我还是想保留这些数字｡
但只有双数｡
我该怎么做呢？
在这个例子中, 我们有一种新的方法来创建这个列表表达式｡
我们要做和这里一样的事｡
所以我复制一下｡
但是在最后, 记住, 我们现在有了一个表达式,
我们要做的事情是影响可迭代对象中的项｡
我们将循环遍历这些内容｡
最后, 我们可以说if或者我们可以做if条件｡
在我们的例子中, 我会说如果num｡
模2等于零｡
然后才将其添加到列表中｡
如果我们单击“运行”｡
哦, 我的天
并确保它是单击运行列表
你看那个｡
所有这些都是偶数｡
让我们来看看这个格式｡
记住了｡
这些被称为列表理解｡
这是一种用Python快速创建列表的方法, 而不是循环和使用append或我们以前见过的东西｡
所以这是一种简化的形式, 让我们做一些独特的事情｡
我们能够做到这一点的方法是在这里有一个表达式, 我们想对我们正在迭代的每一项做什么｡
我们循环｡
使用for循环遍历一个可迭代对象, 我们给予它一个变量, 然后我们可以根据需要,
添加一个条件, 然后说, 嘿, 只根据这个条件, 根据真或假,
把它包含到列表中｡
非常, 非常酷｡
现在, 虽然列表理解非常好, 因为它们只是简单的一行代码｡
看这段代码会让人很困惑｡
你必须非常熟悉列表理解, 才能真正理解到底发生了什么｡
因此, 尽管这会使代码更短, 甚至更干净, 但它确实会减少一些可读性｡
所以最好创建一个描述性函数, 比如生成偶数列表, 或者类似的东西｡
因此, 它更具描述性, 其他开发人员可能会更好地了解正在发生的事情｡
所以这总是一个权衡｡
让我们休息一下, 在下一个视频中讨论集合和字典理解｡
再见, 再见, 再见