Python学习3——Python的简单推导
Posted jiameng991010
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习3——Python的简单推导相关的知识,希望对你有一定的参考价值。
列表推导是一种从其他列表创建列表的方式,类似于数学中的集合推导,列表推导的工作原理非常简单,类似于for循环。(以下代码均在IDLE实现)
最简单的列表推导:
>>>[x*x for x in range(9,0,-1)] [81, 64, 49, 36, 25, 16, 9, 4, 1]
稍微复杂一点,加上判断条件:
>>>[x*x for x in range(9,0,-1) if x%2==0] [64, 36, 16, 4]
继续复杂,多个for循环:
>>>[(x,y)for x in range(1,10) for y in range(1,10) if x%3==0 and y%3==0] [(3, 3), (3, 6), (3, 9), (6, 3), (6, 6), (6, 9), (9, 3), (9, 6), (9, 9)]
这个时候就有疑问了,上边都用的是列表,那么元组可以吗?
答案显然是——不行!
什么?怎么不行呐?
实际上使用圆括号代替方括号并不能实现元组的推导,而是将创建生成器。
生成器又是个什么东西?
好的,这里我们先不讲述,后面继续学到之后再回过来解释。
虽然无法实现元组的推导,但使用花括号代替方括号却可以实现字典的推导。
>>>squares=i:" suared is ".format(i,i**2) for i in range(5) >>> squares[0] ‘0 suared is 0‘ >>> squares[1] ‘1 suared is 1‘ >>> squares[2] ‘2 suared is 4‘ >>> squares[3] ‘3 suared is 9‘ >>> squares[4] ‘4 suared is 16‘
在列表推导中,for前面只有一个表达式,但在字典的推导中,for前面有两个用冒号分隔的表达式,这两个的表达式分别为键以及对应的值。
未完待续,持续更新中......
以上是关于Python学习3——Python的简单推导的主要内容,如果未能解决你的问题,请参考以下文章