当前位置: 首页 > news >正文

如何建立的网站能争钱wordpress 数据库批量

如何建立的网站能争钱,wordpress 数据库批量,化妆品网站系统规划,wordpress个人淘客容器是一系列元素的集合#xff0c;str、list、set、dict、file、sockets对象都可以看作是容器#xff0c;容器都可以被迭代#xff08;用在for#xff0c;while等语句中#xff09;#xff0c;因此他们被称为可迭代对象。 可迭代对象实现了__iter__方法#xff0c;该方… 容器是一系列元素的集合str、list、set、dict、file、sockets对象都可以看作是容器容器都可以被迭代用在forwhile等语句中因此他们被称为可迭代对象。 可迭代对象实现了__iter__方法该方法返回一个迭代器对象。 迭代器持有一个内部状态的字段用于记录下次迭代返回值它实现了__next__和__iter__方法迭代器不会一次性把所有元素加载到内存而是需要的时候才生成返回结果。 生成器是一种特殊的迭代器它的返回值不是通过return而是用yield。 一迭代器与可迭代对象  迭代器是访问数据集合内元素的一种方式一般用来遍历数据但是他不能像列表一样使用下标来获取数据也就是说迭代器是不能返回的。 Iterator迭代器对象必须要实现next魔法函数 Iterable可迭代对象继承Iterator必须要实现iter魔法函数 from collections import Iterable,Iterator a [1,2,3] print(isinstance(a,Iterator)) print(isinstance(a,Iterable)) 上面的例子中a是一个列表也是一个可迭代对象那么如何才能让这个a变成迭代器呢使用iter()即可。 from collections import Iterable,Iterator a [1,2,3] a iter(a) print(isinstance(a,Iterator)) print(isinstance(a,Iterable)) print(next(a)) print(----) for x in a:print(x) 可以看到现在a是可迭代对象又是一个迭代器说明列表a中有iter方法该方法返回的是迭代器这个时候使用next就可以获取a的下一个值但是要记住迭代器中的数值只能被获取一次。 梳理迭代器(Iterator)与可迭代对象(Iterable)的区别 可迭代对象继承迭代器对象可以用for循环(说明实现了iter方法) 迭代器对象可以用next获取下一个值(说明实现了next方法)但是每个值只能获取一次单纯的迭代器没有实现iter魔法函数所以不能使用for循环 只要可以用作for循环的都是可迭代对象 只要可以用next()函数的都是迭代器对象 列表,字典,字符串是可迭代对象但是不是迭代器对象如果想变成迭代器对象可以使用iter()进行转换 Python的for循环本质上是使用next()进行不断调用for循环的是可迭代对象可迭代对象中有iter魔法函数可迭代对象继承迭代器对象迭代器对象中有next魔法函数 一般由可迭代对象变迭代器对象 二可迭代对象  可迭代对象每次使用for循环一个数组的时候本质上会从类中尝试调用iter魔法函数如果类中有iter魔法函数的话会优先调用iter魔法函数当然这里切记iter方法必须要返回一个可以迭代的对象不然就会报错。 如果没有定义iter魔法函数的话会创建一个默认的迭代器该迭代器调用getitem魔法函数如果你没有定义iter和getitem两个魔法函数的话该类型就不是可迭代对象就会报错。 class s:def __init__(self,x):self.x xdef __iter__(self):return iter(self.x)# 这里必须要返回一个可以迭代的对象# def __getitem__(self, item):# return self.x[item] # iter和getitem其中必须要实现一个 a s(123) # 这里的a就是可迭代对象 # 这里不能调用next(a)方法因为没有定义 for x in a:print(x) 三迭代器 一开始提起iter搭配Iterable做可迭代对象next搭配Iterator做迭代器。next()接受一个迭代器对象作用是获取迭代器对象的下一个值迭代器是用来做迭代的只会在需要的时候产生数据。 和可迭代对象不同可迭代对象一开始是把所有的列表放在一个变量中然后用getitem方法不断的返回数值getitem中的item就是索引值。 但是next方法并没有索引值所以需要自己维护一个索引值方便获取下一个变量的位置。 class s:def __init__(self,x):self.x x# 获取传入的对象self.index 0# 维护索引值def __next__(self):try:result self.x[self.index]# 获取传入对象的值except IndexError:# 如果索引值错误raise StopIteration# 抛出停止迭代self.index 1# 索引值1用来获取传入对象的下一个值return result# 返回传入对象的值a s([1,2,3]) print(next(a)) print(----------) for x in a: #类中并没有iter或者getitem魔法函数不能用for循环会报错print(x) 上面一个就是完整的迭代器对象他是根据自身的索引值来获取传入对象的下一个值并不是像可迭代对象直接把传入对象读取到内存中所以对于一些很大的文件读取的时候可以一行一行的读取内容而不是把文件的所有内容读取到内存中。 这个类是迭代器对象那么如何才能让他能够使用for循环呢那就让他变成可迭代对象只需要在类中加上iter魔法函数即可。 class s:def __init__(self,x):self.x x# 获取传入的对象self.index 0# 维护索引值def __next__(self):try:result self.x[self.index]# 获取传入对象的值except IndexError:# 如果索引值错误raise StopIteration# 抛出停止迭代self.index 1# 索引值1用来获取传入对象的下一个值return result# 返回传入对象的值def __iter__(self):return self a s([1,2,3]) print(next(a)) print(----------) for x in a:print(x) 根据上面的代码提示得到规律 iter让类变成可迭代对象next让类变成迭代器(要维护索引值)。 可迭代对象可以用for循环迭代器可以用next获取下一个值。 迭代器如果想要变成可迭代对象用for循环就要在迭代器内部加上iter魔法函数 可迭代对象如果想要能用next魔法函数使用自身类中的iter()方法即可变成迭代器对象 class s:def __init__(self,x):self.x xself.index 0def __next__(self):try:result self.x[self.index]except IndexError:raise StopIterationself.index 1return resultclass b:def __init__(self,x):self.x xdef __iter__(self):return s(self.x) a b([1,2,3])for x in a:print(x) 这个时候是不能再用next方法了应为类b是一个可迭代对象并非迭代器这个时候不能用next方法但是可以让类b继承类s这样就能用next()方法获取下一个值但是你的类b中要存在索引值不然会报错如下代码: class s:def __init__(self,x):self.x x# 获取传入的对象self.index 0# 维护索引值def __next__(self):try:result self.x[self.index]# 获取传入对象的值except IndexError:# 如果索引值错误raise StopIteration# 抛出停止迭代self.index 1# 索引值1用来获取传入对象的下一个值return result# 返回传入对象的值# def __iter__(self):# return self class b(s):def __init__(self,x):self.x xself.index 0def __iter__(self):return s(self.x) a b([1,2,3])print(next(a)) print(next(a)) 可以这么做但是没必要因为这样违反了设计原则。 迭代器模式提供一种方法顺序访问一个聚合对象中的各种元素而又不暴露该对象的内部表示。 迭代器的设计模式是一种经典的设计模式根据迭代器的特性(根据索引值读取下一个内容不一次性读取大量数据到内存)不建议将next和iter都写在一个类中去实现。 新建一个迭代器用迭代器维护索引值返回根据索引值获取对象的数值新建另一个可迭代对象使用iter方法方便的循环迭代器的返回值。 四生成器 生成器函数中只要有yield这个函数就会变成生成器。每次运行到yield的时候函数会暂停并且保存当前的运行状态返回返回当前的数值并在下一次执行next方法的时候又从当前位置继续往下走。生成器其实是一种特殊的迭代器不过这种迭代器更加优雅。它不需要再像上面的类一样写__iter__()和__next__()方法了只需要一个yiled关键字。 def gen():yield 1# 返回一个对象这个对象的值是1 def ret():return 1# 返回一个数字1 g gen() r ret() print(g,r) print(next(g)) 可以看到return是直接返回数值1yield是返回的一个生成器对象这个对象的值是1使用next(g)或者for x in g:print x 都是可以获取到他的内容的这个对象是在python编译字节码的时候就产生。 def gen():yield 1yield 11yield 111yield 1111yield 11111yield 111111# 返回一个对象这个对象内的值是1和11,111... def ret():return 1return 3# 第二个return是无效的 g gen() r ret() print(g,r) print(next(g)) for x in g:print(x) 就像迭代器的特性一样获取过一遍的值是没法再获取一次的并且不是那种一次把所有的结果求出放在内存或者说不是一次性读取所有的内容放在内存中。 梳理特性 使用yield的函数都是生成器函数 可以使用for循环获取值也可以使用next获取生成器函数的值 例子1迭代器和生成器实现斐波那契数列 class Fib:def __init__(self):self.prev 0self.curr 1def __iter__(self):return selfdef __next__(self):value self.currself.curr self.prevself.prev valuereturn valuef Fib() for i in range(10):print(next(f)) # list(islice(f, 0, 10))def fib():prev, curr 0, 1while True:yield currprev, curr curr, curr prevf fib() for i in range(10):print(next(f)) 例子2利用生成器产生batch的图片 import pandas as pd import numpy as np import cv2 def make_csv():images_pathnp.array([str(i).jpg for i in np.random.randint(0,1000,18)]).reshape(-1,1)# print(images_path)label np.random.randint(0,2,18).reshape(-1,1)# print(label)res np.hstack((images_path,label))print(res)res_dfpd.DataFrame(res)res_df.to_csv(test.csv,indexFalse,headerNone)def yield_batch():path./test.csvresnp.array(pd.read_csv(path))print(res.shape:,res.shape)datasres[:,0]labelsres[:,-1]# print(datas:,datas)# print(labels:,labels)batch_size8num_batchlen(datas)//batch_sizefor i in range(num_batch):imgs[]train_datas datas[batch_size*i:batch_size*(i1)]train_lables labels[batch_size*i:batch_size*(i1)]for img_path in train_datas:img1# img cv2.imread(img_path)# img cv2.resize(img,500)# img img/255 #归一化处理imgs.append(img)yield np.array(imgs),np.array(train_lables)if __name__ __main__:# make_csv()epochs2for i in range(epochs):print({} epoch.format(i))for (data,label) in yield_batch():print(data:,data)print(label:,label)
http://www.zqtcl.cn/news/436402/

相关文章:

  • 简单的企业小网站南宁最新消息今天
  • 美橙表业手表网站公司推广渠道
  • 大连网站排名优化价格wordpress锚文字
  • 漯河网做网站南京市建设工程档案馆网站
  • 重庆可以建建网站的平台天眼查 企业查询官网
  • gta5单机买房子网站在建设免费建小程序网站
  • 怎么制作网站设计图片劳动保障局瓯海劳务市场和做网站
  • 视屏网站制作青岛平台网站建设
  • asp网站做搜索义乌网站建设工作室
  • .net网站开发环境wordpress添加特效
  • 常州 网站制作如何找专业的网站建设公司
  • 陕西网络营销优化公司seo搜索价格
  • 山东通信局报备网站东营城镇建设规划网站
  • 建设银行如何招聘网站网站开发转包协议
  • 主流网站建设服务器有哪些电商平台
  • 网站与数据库的联系wordpress改为中文
  • 如何不让百度收录网站wix和wordpress比较
  • php开源网站 网上商城网站建设公司做销售好不好
  • 网站开发学哪种语言网站加水印
  • 帮人家做网站维护女性手机网站模板
  • 给一个企业做网站苏州网站备案查询
  • 域名备案期间怎么做网站广告投放行业
  • wordpress站内搜索统计网站突然不收录了
  • 网站源码小千个人网做网页设计一个月能挣多少
  • 贵州省建设厅公示网站广州seo网站推广费用
  • 旅游网站建设前期分析公众号制作多少钱
  • 延庆长沙网站建设怎样下载门户网站
  • flash 网站建设建设带数据搜索的网站
  • 设计网站网站名称云主机 小型网站
  • 网站建设方案书 模版公司制作网站收费标准