python进阶----推导式,异常

来源:互联网 发布:淘宝怎么修改送货地址 编辑:程序博客网 时间:2024/06/06 16:54
#ListDictSet#variable = [out_exp for out_exp in input_list if out_exp ==2]multiples = [i for i in range(30) if i %3 is 0]multiples =[i for i in range(20) if i //2 is not 0]multiples= [x**2 for x in range(10)]print(multiples)mcase = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}#这个是字典的推导式mc = {k.lower() : mcase.get(k.lower(),1)for k in mcase.keys()}print(mc)#快速对换一个字典的键和值:mc1={v: k for k, v in mcase.items()}print(mc1)#集合推导式(set comprehensions)#它们跟列表推导式也是类似的。 唯一的区别在于它们使用大括号{}。 举个例子squared = {x**2 for x in [1, 1, 2]}print(squared)"""异常处理多个异常"""# try:# file =open('test.txt','rb')# except IOError as e:# raise "happpen a IOError !"#第一种方法需要把所有可能发生的异常放到一个元组里try: file = open('test.txt','rb')except (IOError,EOFError) as e:print("多种异常") else:#我们常常想在没有触发异常的时候执行一些代码。这可以很轻松地通过一个else从句来达到。# 这里的代码只会在try语句里没有触发异常时运行,    # 但是这里的异常将 *不会* 被捕获print("else exception ")finally:#最后总会执行print("finaly do some thing!")# try:# file =open('text.txt','rb')# except IOError as e:# raise e# except EOFError as e:# raise e# except Exception:# raise #lambda表达式 lambda 参数:操作(参数)add = lambda x,y : x + yprint(add(3,5))a = [(1, 2), (4, 1), (9, 10), (13, -3)]print(a.sort(key = lambda x : x[1]))print(a)list1 =[4,2,3]list2 = [12,13,14]data = zip(list1,list2)data = sorted(data)list1,list2 = map(lambda t: list(t), zip(*data))print(list1)print(list2)