廖雪峰python3复习总结——day10-2

常用内建模块:

1、datetime:Python处理日期和时间的标准库。

       我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。

   datetime表示的时间需要时区信息才能确定一个特定的时间,否则只能视为本地时间。

         如果要存储datetime,最佳方法是将其转换为timestamp再存储,因为timestamp的值与时区完全无关

练习:

import re
from datetime import datetime, timezone, timedelta
def to_timestamp(dt_str, tz_str):

#将字符串转化为datetime
    cnow=datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')

#获得时区
    t=re.split(r'[C:]',tz_str)
    dt=int(t[1])
#设置时区
    tz_utc_set= timezone(timedelta(hours=dt))
    t_now=cnow.replace(tzinfo=tz_utc_set)


#转换时区
    now_set=t_now.astimezone(timezone(timedelta(hours=8)))
    return now_set.timestamp()

最后一步转换时区实际上是不必要的,设置好时区之后,timestamp()函数会自动转换为本地时间,可以试着将hours=8、9、10,就会发现结果不变。

最后一步可直接变为:
    return t_now.timestamp()

2、collection:

  • namedtuple:是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。
  • deque:使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删除操作的双向列表,适合用于队列和栈.
  • defaultdict:使用dict时,如果引用的Key不存在,就会抛出KeyError。如果希望key不存在时,返回一个默认值,就可以用defaultdict.除了在Key不存在时返回默认值,defaultdict的其他行为跟dict是完全一样的。

  • OrderedDict:使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。如果要保持Key的顺序,可以用OrderedDict。注意,OrderedDict的Key会按照插入的顺序排列,不是Key本身排序。OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key。

  • Counter是一个简单的计数器。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值