‫让我们来谈谈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循环遍历一个可迭代对象, 我们给予它一个变量, 然后我们可以根据需要,
‫添加一个条件, 然后说, 嘿, 只根据这个条件, 根据真或假,
‫把它包含到列表中｡
‫非常, 非常酷｡
‫现在, 虽然列表理解非常好, 因为它们只是简单的一行代码｡
‫看这段代码会让人很困惑｡
‫你必须非常熟悉列表理解, 才能真正理解到底发生了什么｡
‫因此, 尽管这会使代码更短, 甚至更干净, 但它确实会减少一些可读性｡
‫所以最好创建一个描述性函数, 比如生成偶数列表, 或者类似的东西｡
‫因此, 它更具描述性, 其他开发人员可能会更好地了解正在发生的事情｡
‫所以这总是一个权衡｡
‫让我们休息一下, 在下一个视频中讨论集合和字典理解｡
‫再见, 再见, 再见