摘要: 问题: ​ 你想构建一个能支持迭代操作的额自定义对象,并希望找到一个能实现迭代协议的简单方法。 解决方案: ​ 目前为止,在对象上实现迭代最简单的方式是使用一个生成器函数。可以实现一个深度优先遍历树形节点的生成器。下面是实现代码 class Node: def __init__(self, valu 阅读全文
posted @ 2022-03-17 14:15 qiupeng 阅读(33) 评论(0) 推荐(0)
摘要: ​ 问题: ​ 你想实现一个自定义迭代模式,跟普通的内置函数比如range(),reverse的()不一样。 解决方案: ​ 如果你想实现一种新的迭代模式,使用一个生成函数来定义它。下面是 一个生产某个范围内浮点数的生成器。 def frange(start, stop, increment): x 阅读全文
posted @ 2022-03-17 11:36 qiupeng 阅读(35) 评论(0) 推荐(0)
摘要: 问题: ​ 你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。你想直接在你的这个新容器对象上执行迭代操作。 解决方案: ​ 实际上你只需要定义一个__iter__()方法,将迭代操作代理到容器内部的对象上去,比如: class Node: def __init__(self,valu 阅读全文
posted @ 2022-03-17 11:17 qiupeng 阅读(27) 评论(0) 推荐(0)
摘要: 问题: ​ 你想遍历一个可迭代对象中的所有元素,但是却不想使用for循环 解决方案: ​ 为了手动的遍历可迭代对象,使用next()函数并在代码中捕获StopIterable异常。比如,下面的例子手动读取一个文件中的所有行: def manual_iter(): with open(r'D:\stu 阅读全文
posted @ 2022-03-17 11:16 qiupeng 阅读(60) 评论(0) 推荐(0)
摘要: 问题: 解决方案: ​ 对几乎所有涉及到时区的问题,你都应该使用pytz模块,这个包提供了Olson时区数据库,它是时区的事实上的标准,在很多语言和操作系统里面都可以找到, pytz模块一个主要用途是将datetime库创建的简单日期对象本地化,比如,下面如果表示一个芝加哥时间的示例: from d 阅读全文
posted @ 2022-03-16 09:42 qiupeng 阅读(118) 评论(0) 推荐(0)
摘要: 问题: ​ 你的应用程序接受字符串格式的输入,但是你想将它们转换为datetime对象以便在上面执行非字符串操作。 解决方案: ​ 使用python的标准模块datetime可以很容易解决这个问题,比如: from datetime import datetime text='2022-03-15' 阅读全文
posted @ 2022-03-15 16:19 qiupeng 阅读(373) 评论(0) 推荐(0)
摘要: 问题: ​ 你的代码需要在当前月份中循环每一天,想要找到一个计算这个日期范围的高效方法。 解决方案: ​ 在这样的日期上循环并需要事先沟通构造又给包含所有日期的列表,你可以先计算出开始日期和结束日期,然后在你步进的时候使用datetime.timedelta对象递增这个日期变量即可。 ​ 下面是一个 阅读全文
posted @ 2022-03-15 15:30 qiupeng 阅读(103) 评论(0) 推荐(0)
摘要: 问题: ​ 你需要查找星期中某一天最后出现的日期,比如星期五。 解决方案: ​ Python的datetime模块中有工具函数和类可以帮助你执行这样的计算。下面是对类似这样的问题的一个通用解决方案: from datetime import datetime, timedelta weekdays 阅读全文
posted @ 2022-03-15 10:09 qiupeng 阅读(61) 评论(0) 推荐(0)
摘要: 问题: ​ 你需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。 解决方案: ​ 为了执行不同时间单位的转换和计算,请使用datatime模块,比如,为了表示一个时间段,可以创建一个timedatela实例,就像下面这样: from datetime import timedelta a=ti 阅读全文
posted @ 2022-03-11 17:51 qiupeng 阅读(107) 评论(0) 推荐(0)
摘要: 问题: ​ 你想从一个序列中随机抽取若干元素,或者想生成几个随机数。 解决方案: ​ random模块有大量的函数用来生产随机数和随机选择元素。比如,想要从一个序列中随机的抽取一个元素,可以使用random.choice(): import random values=[1,2,3,4,5,6] p 阅读全文
posted @ 2022-03-11 17:19 qiupeng 阅读(192) 评论(0) 推荐(0)