连击 天
fork: star:
使用其他分隔符或行终止符打印 问题 你想使用 print() 函数输出数据,但是想改变默认的分隔符或者行尾符。 解法 可以使用在 print() 函数中使用 sep 和 end 关键字参数,以你想要的方式输出。...
打印输出至文件中 问题 你想将 print() 函数的输出重定向到一个文件中去。 解法 在 print() 函数中指定 file 关键字参数,像下面这样: with open('d:/work/test.txt', 'wt') as f: print('H...
读写文本数据 问题 你需要读写各种不同编码的文本数据,比如 ASCII,UTF-8 或 UTF-16 编码等。 解法 使用带有 rt 模式的 open() 函数读取文本文件(t表示text文本模式,默认模式,这可以省略...
迭代器代替 while 无限循环 问题 你在代码中使用 while 循环来迭代处理数据,因为它需要调用某个函数或者和一般迭代模式不同的测试条件。能不能用迭代器来重写这个循环呢? 解法 一个常见的 ...
顺序迭代合并后的排序迭代对象 问题 你有一系列排序序列,想将它们合并后得到一个排序序列并在上面迭代遍历。 解法 heapq.merge() 函数可以帮你解决这个问题。比如: >>> import heapq >>> a...
展开嵌套的序列 问题 你想将一个多层嵌套的序列展开成一个单层列表 解法 可以写一个包含 yield from 语句的递归生成器来轻松解决这个问题。比如: from collections import Iterable def fla...
不同集合上元素的迭代 问题 你想在多个对象执行相同的操作,但是这些对象在不同的容器中,你希望代码在不失可读性的情况下避免写重复的循环。 解法 itertools.chain() 方法可以用来简化这个任...
同时迭代多个序列 问题 你想同时迭代多个序列,每次分别从一个序列中取一个元素。 解法 为了同时迭代多个序列,使用 zip() 函数。比如: >>> xpts = [1, 5, 4, 2, 10, 7] >>> ypts = [101, ...
跳过可迭代对象的开始部分 问题 你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。 解法 itertools 模块中有一些函数可以完成这个任务。首先介绍的是itertools.dropw...
迭代器切片 问题 你想得到一个由迭代器生成的切片对象,但是标准切片操作并不能做到。 解法 函数 itertools.islice() 正好适用于在迭代器和生成器上做切片操作。比如: >>> def count(n): .....
反向迭代 问题 你想反方向迭代一个序列 解法 使用内置的 reversed() 函数,比如: >>> a = [1, 2, 3, 4] >>> for x in reversed(a): ... print(x) ... 4 3 2 1 反向迭代仅仅当对象的大小可预...
实现迭代器协议 问题 你想构建一个能支持迭代操作的自定义对象,并希望找到一个能实现迭代协议的简单方法。 解法 目前为止,在一个对象上实现迭代最简单的方式是使用一个生成器函数。在 4.2 ...
使用生成器创建新的迭代模式 问题 你想实现一个自定义迭代模式,跟普通的内置函数比如 range() , reversed() 不一样。 解法 如果你想实现一种新的迭代模式,使用一个生成器函数来定义它。下面...
代理迭代 问题 你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。你想直接在你的这个新容器对象上执行迭代操作。 解法 实际上你只需要定义一个 iter () 方法,将迭代操作...
手动遍历迭代器 问题 你想遍历一个可迭代对象中的所有元素,但是却不想使用 for 循环。 解法 为了手动的遍历可迭代对象,使用 next() 函数并在代码中捕获 StopIteration 异常。比如,下面的例...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复