python基础——collections、time、datetime、random模块


一、collections模块

模块为python开发提供了更多的数据类型

1.具名元组

可以对元组进行属性上的标注,方便观看数据各部分对应什么
第一个参数可以看做对元组的定义,第二个参数一般为多个数据分别对应其中每个数据

from collections import namedtuple

di = namedtuple("学生", ["姓名", "学号"])
dc = namedtuple("学生", "姓名 学号")
d1 = di("kdq","201910")
d2 = di("kdc","201911")
d3 = dc("kdq","201910")
d4 = dc("kdc","201911")
print(d1,d2)
print(d1.姓名,d2.学号)
print(d3,d4)
print(d3.姓名,d4.学号)

在这里插入图片描述

2.双端队列

python的队列先进先出,一般一端进一端出
双端队列可以在任意端进或出,数据大后可以方便数据的读写操作

import queue # 首先是队列
q = queue.Queue(3)
q.put(12)
q.put(15)
q.put(16)
print(q.get(12)) #此时取出的是12
q.put(12)
print(q.get(12)) # 此时取出的为15 因为队列一端进一端出,所以只能先进的先出
l = deque([1, 2, 3, 4])
print(l)
l.append(5) # 向双端队列右侧添加元素
l.appendleft(0) # 向双端队列做侧添加元素
print(l)
l.pop() # 右侧弹出一个元素
print(l)
l.popleft() # 左侧弹出一个元素
print(l)

在这里插入图片描述

3.有序字典

正常字典是无序存放的,而有序字典是按元素添加顺序来存放的,方便按顺序获取

from collections import OrderedDict
d2 = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
print(d2)
d2['x'] = 11
d2['y'] = 22
d2['z'] = 33
print(d2)
print(d2.keys())

在这里插入图片描述

4.默认值字典

拥有默认值类型的字典,后续添加的元素都是该类型

from collections import defaultdict
values = [11, 22, 33,44,55,67,77,88,99,90]
my_dict = defaultdict(list)  # 字典所有的值默认都是列表  {'':[],'':[]}
for value in  values:
    if value < 66:
        my_dict['k1'].append(value)
    else:
        my_dict['k2'].append(value)
print(my_dict) 
# defaultdict(<class 'list'>, {'k1': [11, 22, 33, 44, 55], 'k2': [67, 77, 88, 99, 90]})

5.计数器

统计字符串中所有出现字符的次数

from collections import Counter
res = "helloword"
r = Counter(res)
print(r)
# Counter({'l': 2, 'o': 2, 'h': 1, 'e': 1, 'w': 1, 'r': 1, 'd': 1})

二、time、datetime模块

1.time

1.time.sleep(secs)
	推迟指定的时间运行,单位为秒
2.time.time()
	获取当前时间戳

1.1时间戳

时间戳是指从1970年1月1日0时0分0秒到产生时间戳的秒数差距

import time
print(time.time()) #1649744400.2886536

1.2结构化时间

结构化时间是用于给电脑识别的

time.localtime()

在这里插入图片描述

参数作用
tm_year
tm_mon
tm_mday
tm_hour
tm_min
tm_sec
tm_wday星期
tm_yday一年中的第几天
tm_isdst是否夏令时 0位否 1位是

1.3格式化时间

格式化时间便于使用者辨识,提供的参数可以是任意形式的例如:
“%Y %m %d %X"或者”%Y/%m/%d/%X"

print(time.strftime("%Y %m %d %X"))
print(time.strftime("%Y %m %d %H %M %S"))

在这里插入图片描述

参数作用
%Y
%m
%d
%X时分秒
%H
%M
%S

1.4时间转换

时间戳与结构化时间相互转化
结构化时间与格式化时间相互转化
在这里插入图片描述

2.datatime

该模块为年月日时分秒形式,便于时间操作

import datetime
time1 = datetime.datetime.today()
time2 = datetime.timedelta(hours=5)
time3 = time1 + time2
print(time1 - time2)
print(time3)
print(time3 - time1)

在这里插入图片描述


三、random模块

1.random

随机产生0到1之间的小数

print(random.random()) # 0.41823636941805387

2.uniform

随机产生俩个参数之间的小数

print(random.uniform(1, 3)) # 2.5316878263791427

3.randint

随机产生俩个参数之间的整数

print(random.randint(1, 4)) # 3

4.shuffle

将数据集合随机打乱

l = [1, 2, 3, 4, 5]
print(l)
random.shuffle(l)
print(l)

在这里插入图片描述

5.choice

从数据集合中随机选择一个并返回该选择元素

l = ["asd", "vvd", "kkx"]
print(random.choice(l)) # asd

6.sample

从数据集合中随机抽取指定个数的元素

l = ["bac", 12, 13, "kkx"]
print(random.sample(l, 3))
![在这里插入图片描述](https://img-blog.csdnimg.cn/6eaae1e3e44f42c28284dfd4ca801d48.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bGx5LiK5pyJ5Liq6L2m,size_20,color_FFFFFF,t_70,g_se,x_16)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值