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

电商网站建设技术员的工作职责重庆渝北网站建设

电商网站建设技术员的工作职责,重庆渝北网站建设,自设计网站,广州市城市建设python模块百科_为高效而生_itertools【三】 一、itertools --- 为高效而生二、无穷迭代器三、根据最短输入序列长度停止的迭代器3.6 groupby()3.7 islice()3.8 starmap()3.9 takewhile()3.10 tee() 一、itertools — 为高效而生 itertools — 为高效而生。itertools模块实现一… python模块百科_为高效而生_itertools【三】 一、itertools --- 为高效而生二、无穷迭代器三、根据最短输入序列长度停止的迭代器3.6 groupby()3.7 islice()3.8 starmap()3.9 takewhile()3.10 tee() 一、itertools — 为高效而生 itertools — 为高效而生。itertools模块实现一系列迭代器 这些迭代器受到APLHaskell、SML几种语言的启发。 itertools模块标准化了一个快速、高效利用内存的核心工具集这些工具本身或组合都很有用。它们一起形成了“迭代器代数”这使得在纯Python中有可能创建简洁又高效的专用工具。 例如SML有一个制表工具 tabulate(f)它可产生一个序列 f(0), f(1), ...。在Python中可以组合 map() 和 count() 实现 map(f, count())。 这些工具及其内置对应物也能很好地配合 operator 模块中的快速函数来使用。 例如乘法运算符可以被映射到两个向量之间执行高效的点积: sum(starmap(operator.mul, zip(vec1, vec2, strictTrue)))。 二、无穷迭代器 迭代器实参结果示例count()[start[, step]]start, startstep, start2step, …count(10) -- 10 11 12 13 14 ...cycle()pp0, p1, … plast, p0, p1, …cycle(ABCD) -- A B C D A B C D ...repeat()elem [,n]elem, elem, elem, … 重复无限次或n次repeat(10, 3) -- 10 10 10 三、根据最短输入序列长度停止的迭代器 迭代器实参结果示例accumulate()p [,func]p0, p0p1, p0p1p2, …accumulate([1,2,3,4,5]) -- 1 3 6 10 15chain()p, q, …p0, p1, … plast, q0, q1, …chain(ABC, DEF) -- A B C D E Fchain.from_iterable()iterable – 可迭代对象p0, p1, … plast, q0, q1, …chain.from_iterable([ABC, DEF]) -- A B C D E Fcompress()data, selectors(d[0] if s[0]), (d[1] if s[1]), …compress(ABCDEF, [1,0,1,0,1,1]) -- A C E Fdropwhile()pred, seqseq[n], seq[n1], … 从pred首次真值测试失败开始dropwhile(lambda x: x5, [1,4,6,4,1]) -- 6 4 1filterfalse()pred, seqseq中pred(x)为假值的元素x是seq中的元素。filterfalse(lambda x: x%2, range(10)) -- 0 2 4 6 8groupby()iterable[, key]根据key(v)值分组的迭代器islice()seq, [start,] stop [, step]seq[start:stop:step]中的元素islice(ABCDEFG, 2, None) -- C D E F Gstarmap()func, seqfunc(seq[0]), func(seq[1]), …starmap(pow, [(2,5), (3,2), (10,3)]) -- 32 9 1000takewhile()pred, seqseq[0], seq[1], …, 直到pred真值测试失败takewhile(lambda x: x5, [1,4,6,4,1]) -- 1 4tee()it, nit1, it2, … itn 将一个迭代器拆分为n个迭代器zip_longest()p, q, …(p[0], q[0]), (p[1], q[1]), …zip_longest(ABCD, xy, fillvalue-) -- Ax By C- D- 3.6 groupby() itertools.groupby() 是一个 Python 内置函数它可以对可迭代的对象进行分组。这个函数有两个主要参数一个可迭代的对象和一个键函数。键函数定义了如何将可迭代对象的元素分组。 示例1 列表奇偶分组 from itertools import groupby # 创建一个数字列表 numbers [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 定义一个函数用于将数字按奇偶分组 def key_func(n):return n % 2 0 # 使用 groupby() 对数字进行分组 for key, group in groupby(numbers, key_func):print(fkey{key}, value {list(group)})# 执行结果 keyFalse, value [1] keyTrue, value [2] keyFalse, value [3] keyTrue, value [4] keyFalse, value [5] keyTrue, value [6] keyFalse, value [7] keyTrue, value [8] keyFalse, value [9] keyTrue, value [10]示例2 字符串长度分组 from itertools import groupby words [apple, banana, cherry, date, elderberry, fig, grape] def key_func(word):return len(word) for key, group in groupby(words, key_func):print(fLength {key}: {list(group)})# 执行结果 Length 5: [apple] Length 6: [banana, cherry] Length 4: [date] Length 10: [elderberry] Length 3: [fig] Length 5: [grape]示例3 字母分组 from itertools import groupby letters [at, bi, bc, bd, ei, fe, ga, gh, gi, jd] def key_func(letter):return letter[0] for key, group in groupby(letters, key_func):print(fFirst letter {key}: {list(group)})# 执行结果 First letter a: [at] First letter b: [bi, bc, bd] First letter e: [ei] First letter f: [fe] First letter g: [ga, gh, gi] First letter j: [jd]3.7 islice() itertools.islice() 可以从一个迭代器中获取切片 示例1 无穷迭代器前10个数下10个数中后5个 from itertools import count, islice # 创建一个无限递增的数字迭代器 numbers count(1) # 使用 islice() 获取前10个数字 first_ten_numbers islice(numbers, 10) # 打印前10个数字 print(list(first_ten_numbers)) # 使用 islice() 截取下10个数字中的后5个 first_ten_numbers islice(numbers, 5, 10) # 打印这5个数字 print(list(first_ten_numbers))# 执行结果 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [16, 17, 18, 19, 20]示例2 10以下素数迭代10次 from itertools import islice, cycledef generate_primes(n):def is_prime(num):if num 2:return Falsefor i in range(2, int(num ** 0.5) 1):if num % i 0:return Falsereturn Truereturn islice(cycle((x for x in range(2, n) if is_prime(x))), n)print(list(generate_primes(10)))# 执行结果 [2, 3, 5, 7, 2, 3, 5, 7, 2, 3]3.8 starmap() itertools.starmap() 是 Python 的一个内置函数它用于将一个可迭代对象的元素作为参数传递给一个函数并返回函数的迭代器。 示例 1执行多个函数 from itertools import starmapdef func1(a, b):return a bdef func2(a, b):return a * bnumbers [(1, 2), (3, 4), (5, 6)] result1 list(starmap(func1, numbers)) result2 list(starmap(func2, numbers)) print(result1) print(result2) # 执行结果 [3, 7, 11] [2, 12, 30]示例 2将多个列表的元素作为参数传递给函数 from itertools import starmap, zip_longestdef add_elements(a, b):return a blist1 [1, 2, 3] list2 [4, 5, 6] zipped list(zip_longest(list1, list2)) # 使用 None 填充较短的列表 result list(starmap(add_elements, zipped)) print(result) # 执行结果 [5, 7, 9]示例 3在多线程应用中并行处理数据 from itertools import starmap, islice from concurrent.futures import ThreadPoolExecutor def process_data(data):# 这里可以执行一些耗时的数据处理任务return data * 2with ThreadPoolExecutor() as executor:data range(100) # 大量的数据需要处理chunk_size 10 # 将数据分成小块进行处理以提高效率chunks list(islice(data, chunk_size)) # 将数据分成块print(chunks)chunkslist [[x] for x in chunks]results list(starmap(process_data, chunkslist)) # 使用 starmap() 将块传递给处理函数并收集结果print(results) # 执行结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]3.9 takewhile() itertools.takewhile() 可以从一个迭代器中取出元素直到满足某个条件为止。以下是代码示例 示例1 取出列表中小于5的数 import itertools numbers [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result list(itertools.takewhile(lambda x: x 5, numbers)) print(result) numbers [8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result list(itertools.takewhile(lambda x: x 5, numbers)) print(result)# 执行结果 [1, 2, 3, 4] []示例2 取连续小写字母 import itertools text HelloWorld result list(itertools.takewhile(lambda x: x.islower(), text)) print(result) text helloWorld result list(itertools.takewhile(lambda x: x.islower(), text)) print(result)# 执行结果 [] [h, e, l, l, o]3.10 tee() itertools.tee() 用于复制迭代器。这意味着你可以得到原始迭代器的多个副本这些副本可以独立地迭代。 示例1 复制一个字符串的多个副本 import itertools s hello t1, t2 itertools.tee(s) print(list(t1)) print(list(t2)) # 执行结果 [h, e, l, l, o] [h, e, l, l, o]**示例2**生成多个斐波那契数列的副本 import itertools def fibonacci(n):a, b 0, 1i 0while i n:yield aa, b b, a bi 1 fib_seq1, fib_seq2, fib_seq3 itertools.tee(fibonacci(5), 3) # 创建斐波那契数列的三个副本 print(list(fib_seq1)) print(list(fib_seq2)) print(list(fib_seq3))# 执行结果 [0, 1, 1, 2, 3, 5] [0, 1, 1, 2, 3, 5] [0, 1, 1, 2, 3, 5]may the odds be ever in your favor ~
http://www.zqtcl.cn/news/12331/

相关文章:

  • 建设一个自己的网站首页wordpress博客文章404
  • 点击网站网址大全软件下载
  • 四川省住房城乡建设厅官网查询seo网络培训学校
  • 网站备案进程查询怎么做自己的网站主页
  • 赣州火车站找服务微信卖货小程序怎么做
  • 网站开发需要准备什么中国有色金属建设股份有限公司网站
  • 云南做网站多少钱免费房屋建设图纸网站有哪些
  • 学科网站建设管理wordpress套用主题
  • 安徽住房和城乡建设厅官网网站关键词优化方案
  • co域名 大网站柳州市建设工程质量安全监督管理处网站
  • 金融中介做网站需要网站图片切换
  • 怎么在凡科做自己网站赤峰网站建设哪家好
  • 批量做网站引流购物网站排名2017
  • 网站定做公司初学网站开发
  • 做网站公司南京丰宁县有做网站的吗
  • 河南网站建设优化推广表白网页生成制作
  • 电子商务实网站的建设个人简历ppt模板免费下载可编辑
  • 外国大气网站设计网站建设与管理期末总结
  • 建设部网站监理公告精品课程教学网站
  • 怎么做学校网站和微信公众号电子工程院官网
  • 三明网站优化适合医药公司做网站的图片
  • 保定网站seo技术做建材一般去什么网站宣传
  • 广州市白云区网站建设维护深圳罗湖的网站设计
  • 公司网站建设业务文案云南省建设执业资格注册管理中心网站
  • 宝安中心医院体检成都网站排名生客seo怎么样
  • 溧水做网站价格免费手机网页
  • 广州网站设计费用想开一家网店
  • 做网站挣钱打擦边球《网站建设教程
  • 网站建设千套素材自己怎么做卖东西的网站
  • wordpress支持多个站点地址门户网站建设投入