• Python补充1——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前面有两个用冒号分隔的表达式,这两个的表达式分别为键以及对应的值。

    未完待续,持续更新中......

  • 相关阅读:
    linux ubuntu 指令
    java tomcat linux 环境变量设置
    ubuntu 窗口操作快捷键
    vim 常用命令
    ubuntu 语言设置
    SQL用户存在则更新不存在则插入
    下载组件Jspsmartupload中文乱码解决办法
    ExtJS学习
    JSP 通过Session和Cookie实现网站自动登录
    SpringMVC XXX-servlet.xml ApplicationContext.xml
  • 原文地址:https://www.cnblogs.com/jiameng991010/p/11226581.html
Copyright © 2020-2023  润新知