python基础——collections、time、datetime、random模块
文章目录
- 一、collections模块
- 1.具名元组
- 2.双端队列
- 3.有序字典
- 4.默认值字典
- 5.计数器
- 二、time、datetime模块
- 1.time
- 1.1时间戳
- 1.2结构化时间
- 1.3格式化时间
- 1.4时间转换
- 2.datatime
- 三、random模块
- 1.random
- 2.uniform
- 3.randint
- 4.shuffle
- 5.choice
- 6.sample
一、collections模块
模块为python开发提供了更多的数据类型
1.具名元组
可以对元组进行属性上的标注,方便观看数据各部分对应什么
第一个参数可以看做对元组的定义,第二个参数一般为多个数据分别对应其中每个数据
from collections import namedtupledi = 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)
python基础——collections、time、datetime、random模块相关推荐
- Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块...
一.前提介绍: 可以开辟作用域的只有类,函数,和模块 for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...
- python随机选取字符串_Python random模块sample、randint、shuffle、choice随机函数概念和应用...
Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等. random中的一些重要函数的用法: 1 ).random() 返 ...
- Python实战案例,tkinter+random模块,实现课堂随机抽选提问并语音播报学生姓名
前言 今天给大家介绍Python实现课堂随机抽选提问并语音播报学生姓名实战案例,废话不多说直接开整~ 开发工具 Python版本: 3.8 相关模块: tkinter模块 time模块 random模 ...
- Python爬虫实战,requests+random模块,Python制作桌面翻译软件
前言 今天尝试用Python制作翻译软件.在这里给需要的小伙伴们提供代码,并且给出一点小心得. 程序的功能很简单,可以从三个主流翻译器中选择任意的翻译器进行单词和句子的翻译,使用PyQt5模块实现人机 ...
- Python程序设计与科学计算精录总结Episode.2 Python基础语法:函数、模块、内置数据结构、面向对象知识总结(基于Michael导师Python课程与VS2019)
Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果.这个名字就很讲究,Jupyter改自木星的英文单词Jupiter,其中包 ...
- python随机数生成验证码_Python随机数random模块学习,并实现生成6位验证码
一.前言 学习python随机数random模块的使用 ,并使用模块中的函数,实现6位验证码生成 二.random模块 1.random.random() 返回0-1直接的随机数,类型为float & ...
- AI算法工程师 | 02人工智能基础-Python基础(四)os模块_打开读取文件
文章目录 Python基础语法 之 文件和流 os 模块 调用操作系统命令 操作文件和目录 案例-文件重命名 打开读取文件 打开文件 读取文件 补充-中文编码问题 Python基础语法 之 文件和流 ...
- python 从源码讲解random模块
目录 1.random.random() 2.random.uniform() 3.random.randrange() 4.random.randint() 5.random.choice() 6. ...
- python randint函数边界_Python random模块sample、randint、shuffle、choice随机函数
一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...
最新文章
- 牛客网多校训练第一场 B - Symmetric Matrix(dp)
- 光纤看起来长得都一样?其实它们之间大有不同—Vecloud微云
- Android EventBus 3.0.0 使用总结
- 基于cuda的mmp的bug调试
- servlet请求和响应的过程
- HashMap的put方法(Java7)和putVal方法(Java8)
- 线性筛及其扩展-积性函数
- 交互式多模型_26亿参数,智源、清华开源中文大规模预训练模型
- Linux高性能server规划——多线程编程(在)
- ubuntu16.04下FastDFS+Nginx分布式文件系统
- 联系人排序java代码_Android仿微信联系人按字母排序
- 聊天类APP的测试点
- vs2015社区版有账号后仍然过期
- J2ME、J2SE、J2EE 小讲
- 电脑如何接受邮件服务器,如何设置邮箱服务器?IMAP、POP3有何区别?
- iOS小技能:提取数字(文本框对粘贴内容进行手机号码提取)
- 我是怎样的一个人感悟
- ubutnu18.04/20.04 接入HDMI显示器后,在 root用户下不能播放声音之解决方案
- 线性回归系数的几个性质
- 深圳活动会议媒体邀约,电视台,网媒媒体资源