python 3列表推导式的的一点理解!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 3列表推导式的的一点理解!相关的知识,希望对你有一定的参考价值。

python 3列表推导式的的一点理解!

Python的列表推导式对于新手来说一般都难以理解,简单看个例子:

[x * x for x in range(1,100)]

上面是一个很简单的列表推导式,我的理解方式是从右往左看。

一点一点来看吧,我们先用range(1,100)生成一个迭代器对象(1-99的列表),然后再迭代这个列表的每一个对象,然后让每个对象执行一次平方操作,最后生成一个列表。

-----------------------------分割线-----------------------------------------------------------------------------------------------------------------------------------------------------

技术分享

这样看起来可能更直观一点。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我们还可以这么用:

[‘the %s’ % x for x in range(1,10)]

这里我们用到了格式化字符串%s,理解起来也是一样的。从右往左理解:先用range()生成一个列表,然后用for  in迭代每一个对象,然后把每一个对象都代入到占位符里,最后生成一个列表。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[(x,y) for x in range(1,100) for y in range(1,100)]

用推导列表式生成元组,理解一下:先用range()生成一个列表,然后迭代,这个操作执行了两次,一次是x,一次是y,然后再用元组的定义生成一个列表。

 

以上是关于python 3列表推导式的的一点理解!的主要内容,如果未能解决你的问题,请参考以下文章

Python基础(十五):推导式的讲解

用在数据科学上的 Python:你可能忘记的 8 个概念

如何理解列表推导式

如何理解列表推导式

Python-嵌套列表的推导式

Python学习3——Python的简单推导