上节课复习: 1. 无参装饰器 def 装饰器名字(func): def wrapper(*args,**kwargs): res = func(*args,**kwargs) return res return wrapper @装饰器名字 #被装饰的函数名字=装饰器名字(被装饰的函数的内存地址) def 被装饰的函数名字(): pass 2, 有参装饰器 def 装饰器名字(参数1,参数2,...): def outter(func): def wrapper(*args,**kwargs)…
Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in range(10): user_list.append(i ** 2) print(user_list) 通过列表生成式直接生成示例: user_list = [x ** 2 for x in range(10)] print(user_list) 输出结果相同: [0, 1, 4, 9, 16, 25, 36,…
Python中多个列表与字典的合并方法 1多列表的合并 1)a+=b a=['] b = ['] a += b print(a) >>>['] 2) a.extend(b) a=['] b = ['] a.extend(b) print(a) >>>['1','2','3','22','55','66'] 3) a[0:0] = b切片的方法 a=['] b = ['] a[len(a):len(a)] = b print(a) >>>['] 2 多字…
转自http://yangsq.iteye.com/category/20857 python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益处. 元组         个人认为就像java的数组,python中的元组有以下特性: 任意对象的有序集合,这条没啥说的,数组的同性: 通过偏移读取: 一旦生成,不可改变: 固定长度,支持嵌套 来例子吧: pytho…
递归 递归: # 函数在调用阶段直接或间接地又调用了自身 应用场景: # 将列表中的数字依次打印出来(循环的层数是你必须要考虑的点)   -->  l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13, ]]]]]]]]]]]]] # 循环的写法, 列表嵌套越多层越麻烦 for i in l: # 推导思路 if type(i) is int: print(i) else: for item in i: if type(item)…
1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁.这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件 特点: 可迭代对象遵循可迭代器协议 访问者不需要关心迭代器内部的结构,仅需通过next()方法…
本质上来说生成器迭代器都是一种数据类型,如果你直接打印生成器是无法得出值的,会得到一串内存地址,即一个对象想要得到生成器的值必须要用for或者next,list等来获取 生成器生成器就是一个可迭代对象本质上就是一种数据类型 表现形式有两种 生成器函数: 使用yield 代替 return,但是可以返回多次值 调用之后函数内的代码不执行,返回生成器 每从生成器中取一个值就执行一段,遇到yield就停止 如何从生成器取值: for: 如果没有break就可一直取到最后 next:每次取一个,首次使用…
如何在列表.字典.集合中根据条件筛选数据 问题举例: 过滤列表[1, 2, 5, -1, 9, 10]中的负数 筛选字典{“zhangsan”:97, "lisi":80, "wangwu":60, "liqiang":91}中的值高于90的键值对 筛选集合{89, 70, 60, 80, 90}中能被3整除的元素 列表 一般遇到这种问题,我们首先会想到用for循环的方式去解决 (1)for循环 from random import randin…
一.元组,列表,字典的遍历 1.1 元组的遍历 元组的遍历借助 range() 函数,基本思想是通过元组的长度使用for循环进行遍历,代码如下:     fruits=("apple","banana","orange") for i in range(len(fruits)): print(fruits[i]) * 注意:元组是无法进行重新赋值的,需要将元组进行转换后在进行重新赋值,如转换为list,下面会展示如何转换. 1.2 列表的遍历 列…
三元表达式 三元表达式仅应用于: 1.条件成立返回一个值 2.条件不成立返回一个值 res = x if x>y else y print(res) name= input("姓名>>: ") res="sb" if name == "alex" else "nb" print(res) 函数的递归 函数的递归:函数递归调用,即在函数调用过程中, 又直接或间接的调用了函数本身. 直接调用 def foo():…