``列出清单,检查了两次吗?原因是因为这些人令人困惑:''twas在清单综合的前一天晚上...
#初学者 #python #newbie #listcomprehensions

所以,在我的代码挑战进行的前一天,我很难将自己的头缠绕在python和对象关系周围。我真的希望那个神奇的时刻只需单击。在我们的练习挑战中,我完全以为我吹了它,但是当我们越过它时,我的大脑刚刚点击了一些东西,突然我得到了它!

所以,我有这一刻一切都很有意义,但是老实说,我仍然在为这个问题而苦苦挣扎。但是,我想写的不仅会对我有所帮助,而且也许其他人也经历了同样的事情。生活可能是个疯狂的旅程,对吗?

让我们更深入地研究这个主题!

Image description

当然,我们知道我们舒适的朋友the for loop,当您第一次学习Python时,这是安全,更容易理解的!

例子:

the_list = []
        for concert in Concert.all:
            if concert.venue == self:
                the_list.append( concert )
         return the_list

代码分解:

the_list = []:这将创建一个称为the_list的空列表,该列表将用于存储与场地相关的音乐会。

for concert in Concert.allConcert.all是一个拥有所有可用音乐会的列表(或令人叹为观止的)。循环在此列表中的每场音乐会中迭代。

if concert.venue == self:此行检查当前音乐会的场地是否与给定的self匹配,其中self在方法或类的上下文中指的是场地对象。

the_list.append(concert):如果场地匹配,音乐会将附加到the_list

循环完成后,功能返回the_list,其中包含与给定场所相关的所有音乐会。

是的,用于循环!

那么,您听说过清单综合吗?实际上,它们是Python中非常方便的工具,可以使您的代码在使用列表时更有效。

基本上,您可以使用它们来创建一个新列表,通过将表达式应用于现有列表(或其他迭代)中的每个项目。这使您的代码较短,更易于阅读 - 非常酷,对

例子:

return [c for c in Concert.all if c.venue == self]

代码分解:

return:这表明该函数将返回列表。

c for c in Concert.all:这是列表理解语法。第一个c代表了整个音乐会实例,该实例将列入您的新列表。第二个c通过Concert.all中的每个c(音乐会)迭代,其中包含所有可用的音乐会。

if c.venue == self:列表理解仅在结果中包括c,仅当c(音乐会)的场地属性与self的值匹配时。

selfis在方法或类的上下文中指的是场地对象,代表当前场地。

我必须向我的老师亚当大喊大叫,因为它帮助我拥有“ a-ha”时刻,因为这种崩溃确实有助于我理解!

Image description

记住:

当冒名顶替综合症碰到时,请回想一下您走了多远!

您知道一周前知道的吗?

您可以做到这一点!对自己好!

Image description

快乐编码!