2009-12-14 43 views
8

请不要燃烧,作为一个社区wiki问,所以没人在这里获得声誉。 我知道python不是第一个拥有列表理解功能的语言。 我只是对名字的历史感兴趣。为什么在Python中调用列表理解?

我在为什么它被称为理解

+0

由于bodnarbm提到,它有很长的历史。您将在许多函数式编程语言中找到列表解析,并在离散数学中找到类似的东西。 – Joe 2009-12-14 22:41:26

回答

8

这个名字来源于一个set-comprehension

理解这里使用的概念是指完全容纳完整描述。集合理解是对集合的(通常是短的)完整描述,而不是详尽的(也可能是无限的)列举。

+0

但是为什么理解被调用呢? – Davide 2009-12-15 16:02:15

+1

“理解”在这里用来表示“完全包含”或“完整描述”。集合理解是对集合的(通常是短的)完整描述,而不是详尽的(也可能是无限的)列举。集合理解“{x∈N:x> 2}”是大于2的所有自然数的无限集合。(按照惯例,大写'N'被定义为表示自然数集合,'∈'表示“是集合“,”:'意思是“,”和“{}”的意思是“集合”。) – 2009-12-15 23:28:23

+1

现在,Python已经推广了列表解析语法来设置! – dan04 2010-07-02 06:19:56

1

维基百科网页的历史记录节讨论它是从哪里来的一点特别感兴趣。 List_comprehension#History

+1

但是并没有说为什么 – 2009-12-14 22:39:18

+2

这是一个编程站点! bodnarbm通过编写维基百科文章来最大限度地提高再利用率。或者其他的东西。 – Joe 2009-12-14 22:43:19

+2

严格来说,“为什么在python中调用列表理解是为什么?”是“因为这就是所谓的其他语言”。 – Joe 2009-12-14 22:44:44

1

因为这是一个非常综合方式来描述一个序列(数学和其他语言的一个集合,以及Python中的一个列表/序列)。

3

“理解”不仅意味着“理解”,而是“包含”逻辑。 “牛津英语词典”有以下内容:“I.4.逻辑概念或概念中包含的属性的总和;作为第一个定义下的第四个子定义”包含,包含“的内涵。我不会惊讶地发现,通过那里传递到数学史的用法。在列表或集合理解中,程序员不用明确地给出列表的元素或设置,而是用表达式来描述他们理解的内容(在“包含”意义上)。