摘要: 《流畅的Python》 14.11 可迭代的归约函数 sorted( ) 函数可以处理任意的可迭代对象; sorted( )函数和归约函数只能处理最终会停止的可迭代对象。否则,这些函数会一直收集元素,永远无法返回结果。 阅读全文
posted @ 2023-05-20 22:23 limalove 阅读(35) 评论(0) 推荐(0)
摘要: 如果生成器函数需要产出另一个生成器生成的值,传统的解决方法是使用嵌套的for循环。 ps: 另一个生成器这里没有看懂,哪来的另一个生成器。 标准库中有chain函数,假如自己实现chain生成器: 1 def chain(*iterables): 2 for it in iterables: 3 f 阅读全文
posted @ 2023-05-20 21:49 limalove 阅读(17) 评论(0) 推荐(0)
摘要: 1 注意,itertools.groupby假定输入的可迭代对象要使用分组标准排序;即使不排序,至少也要使用指定的标准分组各个元素。 1 #itertools.groupby函数的用法 2 import itertools 3 4 5 6 k1 = list(itertools.groupby('L 阅读全文
posted @ 2023-05-20 21:37 limalove 阅读(21) 评论(0) 推荐(0)
摘要: 1 combinations:组合数最少的;组合数的下限,重复没有意义(所以不存在AA,BB, CC 这种组合),元素的顺序也没意义(AB和BA是一种组合); product:返回笛卡尔积,组合数最多的,组合数的上限,重复和元素的顺序都有意义; combinations_with_replaceme 阅读全文
posted @ 2023-05-20 19:38 limalove 阅读(15) 评论(0) 推荐(0)
摘要: 1 1 import itertools 2 3 4 b = list(itertools.chain('ABC', range(2), [55,434,665,86])) 5 print('b:', b) # ['A', 'B', 'C', 0, 1, 55, 434, 665, 86] 6 7 阅读全文
posted @ 2023-05-20 18:08 limalove 阅读(11) 评论(0) 推荐(0)
摘要: 用于映射的生成器函数:在输入的单个可迭代对象(map和starmap函数处理多个可迭代的对象)中的各个元素上做计算,然后返回结果。[插图]表14-2中的生成器函数会从输入的可迭代对象中的各个元素中产出一个元素。如果输入来自多个可迭代的对象,第一个可迭代的对象到头后就停止输出。 aa 1 #演示ite 阅读全文
posted @ 2023-05-20 13:50 limalove 阅读(25) 评论(0) 推荐(0)
摘要: 用于过滤的生成器函数 阅读全文
posted @ 2023-05-20 12:56 limalove 阅读(22) 评论(0) 推荐(0)