一.今日主要内容总览(重点) 1.生成器(目的:帮助我们创建对象) (1)生成器的本质就是迭代器 (2)一个一个的创建对象 (3)创建生成器的方式: 1.生成器函数 2.通过生成器表达式来获取生成器 3.类型转换(看不到) 2.生成器函数(重点) (1)生成器函数中包含 yield关键字,返回数据和return差不多 return会立即结束和这个函数的执行 yield 可以分段的执行一个函数 (2)大坑(五星重点): 生成器函数在执行的时候返回生成器,而不是直接执行次函数 (3)能向下执行的两个…
生成器 函数体内有yield选项的就是生成器,生成器的本质是迭代器,由于函数结构和生成器结构类似,可以通过调用来判断是函数还是生成器,如下: def fun(): yield "我是生成器" print(fun()) # 打印内容如下: <generator object fun at 0x0000000002160ED0> 生成器的优点就是节省内存.Python获取生成器的二种方式: 通过函数获取生成器 通过生成器推导式创建生成器 通过函数获取生成器 def fun():…
python的各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(list)推导式 字典(dict)推导式 集合(set)推导式 一.列表推导式 1.使用[]生成list 基本格式 variable = [out_exp_res for out_exp in input_list if out_exp ==…
2.1列表推导式 首先我们先看一下这样的代码,给出一个列表,通过循环,想列表中添加1~10: li = [] for i in range(1,11): li.append(i) print(li) 那么按照上面的要求我们用列表推导式写一下: ls = [i for i in range(1,11)] print(ls) 上面这个代码就是列表推导式,接下来我们将列表推导式进行一个分类: 列表推导式分为两种模式: 1.循环模式:[变量(加工的变量) for 变量 in iterable] 2.筛选…
Python 入门之 推导式 推导式就是构建比较有规律的列表,生成器,字典等一种简便的方式 1.推导式 (1)列表推导式 : <1> 普通循环: [变量 for循环] print([i for i in range(10)]) <2> 筛选模式:[加工后的变量 for循环 加工条件] print([i for i in range(10) if i % 2 ==0]) (2)集合推导式 : <1> 普通循环: {变量 for循环} print({i for i in r…
python基础--列表推导式 1 列表推导式定义 列表推导式能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 2 列表推导式语法 基本格式如下: [expr for value in collection ifcondition] 过滤条件可有可无,取决于实际应用,只留下表达式 列表推导式例子: l=["egg%s"%i for i in range(10)] print(l) 类似于这段for代码: egg_list=[] for i in range(…
python中列表推导式有三种数据类型可用:列表,字典,集合 列表推导式书写形式: [表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件] 1,列表推导式例子: names=['阿西','阿夏',1234,['aaa'],'答案'] new_names=[name for name in names if not isinstance(name,str)]#判断name是不是str类型 print(new_names) 2,集合推导式例子,不同之处指…
python 3列表推导式的的一点理解! Python的列表推导式对于新手来说一般都难以理解,简单看个例子: [x * x for x in range(1,100)] 上面是一个很简单的列表推导式,我的理解方式是从右往左看. 一点一点来看吧,我们先用range(1,100)生成一个迭代器对象(1-99的列表),然后再迭代这个列表的每一个对象,然后让每个对象执行一次平方操作,最后生成一个列表. -----------------------------分割线-------------------…
1.迭代器回顾 可迭代对象:Iterable 可以直接作用于for循环的对象统称为可迭代对象:Iterable.因为可迭代对象里面存在可迭代协议,所以才会被迭代 可迭代对象包括: 列表(list) 元组(tuple) 字典(dict) 集合(set) 字符串(str) 生成器(generator) 也可以说除了int和bool类型的数据以外,都是可迭代对象. 为什么他们能被迭代? 因为他们还有__iter__方法 可以使用isinstance()判断一个对象是否是Iterable对象. 迭代器:…
1.生成器函数 # 函数中如果有yield 这个函数就是生成器函数. 生成器函数() 获取的是生成器. 这个时候不执行函数# yield: 相当于return 可以返回数据. 但是yield不会彻底中断函数. 分段执行函数.# gen.__next__() 执行函数. 执行到下一个yield.# gen.__next__() 继续执行函数到下一个yield. 不用生成器可能导致内存不够 def order(): lst = [] for i in range(10000): lst.append…