美文网首页
【Python】-010-语句表达式-列表解析&异常处理

【Python】-010-语句表达式-列表解析&异常处理

作者: 9756a8680596 | 来源:发表于2017-07-20 18:33 被阅读33次

列表解析

  • 定义:
    • 操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表
    • 在需要改变列表而不是需要新建某列表时,可以使用列表解析。
    • 表达式如下:
      [expr for iter_var in iterable] //for循环可以嵌套
      [expr for iter_var in iterable if cond_expr] //加入了判断条件
  • 用例 :
    • 列表去重
      l1 = [1,1,2,4,3,4,3,5]
      l2 = []
      [l2.append(i) for i in l1 if not i in l2]

    • 元组(生成器,后续介绍)
      iter = ( x**2 for i in range(10) if x%2 ==0 )
      print iter //<generator object <genexpr> at 0x10da37af0>

    • 多重循环
      print [(x,y)for x in (1,2,3,4) for y in (10,15,3,22) if x*y >25]

    • 效率提升
      import time

      results = []
      maxloops = 100
      ranges = 100
      min_time = 100000
      total_time = 0.0
      
      is_forloop = input('Please input 0 or 1:')
      
      for loops in range(maxloops):
          start_clock = time.clock()
          if is_forloop:
              for i in range(ranges):
                  for j in range(ranges):
                      if (i*j) > (i+j):
                          results.append((i,j,i*j))
          else:
              results = [(i,j,i*j) for i in range(ranges) for j in range(ranges) if (i*j)>(i+j)]
      
          end_clock = time.clock()
          run_time = end_clock - start_clock
          total_time = total_time + run_time
          if run_time < min_time:
              min_time = run_time
      
        print 'The results is: ',results
        print 'The fastest loop time is: ',min_time
        print 'The avrage loop time is: ', (total_time)/maxloops
      

异常处理

  • try...except / try...except...finally
    • try后语句如果有异常,执行except语句
    • 无论异常发生与否都会执行finally语句内容
  • raise error(message)
    • 主动触发异常,输出错误信息message
  • assert condition, message
    • 条件满足时,输出错误信息message
  • 举例
    • a[1] #NameError
    • a=2;a[1] #TypeError
    • a=[2];a[9] #IndexError
    • a={};a[1] #KeyError
    • 综合例子
      try:
      a=[0,1]
      print a[1]
      # raise IndexError('Error!')
      assert a[1]==0, 'Assert error!'
      except Exception,e:
      print e
      finally:
      print 'Finally excute!'

参考资料

  1. python 中的列表解析和生成表达式
  2. 列表生成式

相关文章

  • 【Python】-010-语句表达式-列表解析&异常处理

    列表解析 定义:操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表在需要改变列表而不是需要新建某列表时,可...

  • Scala控制结构&数组&映射&元组

    控制结构 if表达式 循环语句 for表达式 match表达式 异常处理Scala处理异常一般通过throw抛出一...

  • Python语法简介

    Python程序结构 程序由模块构成。 模块包含语句。 语句包含表达式。 表达式建立并处理对象。 Python语句...

  • Python 各种推导式

    python 列表推导式 执行结果 生成器表达式 1 把列表解析的[]换成()得到的就是生成器表达式 2 列表解析...

  • Python学习手册 Part2 类型和运算

    介绍Python对象类型 程序由模块构成,模块包含语句,语句包含表达式,表达式建立并处理对象。 Python的每个...

  • 列表解析

    处理序列的操作和列表的方法中,Python还包括一些更高级的操作,称作为列表解析表达式,提供了一种处理象矩阵这样结...

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • 速撸《python学习手册》--第4章-介绍python对象类型

    python的组成全景: 程序由模块构成 模块包含语句 语句包含表达式 表达式建立并处理对象 python的内置对...

  • 1.9语句基础

    一、python的知识结构 python程序的结构 程序由模块构成 模块包含语句 语句包含表达式 表达式创建并处理...

  • python 生成器详述

    参考python核心变成第二版 列表解析 在介绍生成器表达式之前,先来介绍一下列表解析 列表解析(List com...

网友评论

      本文标题:【Python】-010-语句表达式-列表解析&异常处理

      本文链接:https://www.haomeiwen.com/subject/uxldkxtx.html