文章目录

  • 一、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模块相关推荐

  1. Py修行路 python基础 (二十)模块 time模块,random模块,hashlib模块,OS及sys模块...

    一.前提介绍: 可以开辟作用域的只有类,函数,和模块            for循环 if,else: 不能开辟自己的作用域 避免程序复用和重复调用,将这些写到一个.py文件中,做成一个模块,进行调 ...

  2. python随机选取字符串_Python random模块sample、randint、shuffle、choice随机函数概念和应用...

    Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等. random中的一些重要函数的用法: 1 ).random() 返 ...

  3. Python实战案例,tkinter+random模块,实现课堂随机抽选提问并语音播报学生姓名

    前言 今天给大家介绍Python实现课堂随机抽选提问并语音播报学生姓名实战案例,废话不多说直接开整~ 开发工具 Python版本: 3.8 相关模块: tkinter模块 time模块 random模 ...

  4. Python爬虫实战,requests+random模块,Python制作桌面翻译软件

    前言 今天尝试用Python制作翻译软件.在这里给需要的小伙伴们提供代码,并且给出一点小心得. 程序的功能很简单,可以从三个主流翻译器中选择任意的翻译器进行单词和句子的翻译,使用PyQt5模块实现人机 ...

  5. Python程序设计与科学计算精录总结Episode.2 Python基础语法:函数、模块、内置数据结构、面向对象知识总结(基于Michael导师Python课程与VS2019)

    Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果.这个名字就很讲究,Jupyter改自木星的英文单词Jupiter,其中包 ...

  6. python随机数生成验证码_Python随机数random模块学习,并实现生成6位验证码

    一.前言 学习python随机数random模块的使用 ,并使用模块中的函数,实现6位验证码生成 二.random模块 1.random.random() 返回0-1直接的随机数,类型为float & ...

  7. AI算法工程师 | 02人工智能基础-Python基础(四)os模块_打开读取文件

    文章目录 Python基础语法 之 文件和流 os 模块 调用操作系统命令 操作文件和目录 案例-文件重命名 打开读取文件 打开文件 读取文件 补充-中文编码问题 Python基础语法 之 文件和流 ...

  8. python 从源码讲解random模块

    目录 1.random.random() 2.random.uniform() 3.random.randrange() 4.random.randint() 5.random.choice() 6. ...

  9. python randint函数边界_Python random模块sample、randint、shuffle、choice随机函数

    一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等. 二.random模块重要函数 1 ).ra ...

最新文章

  1. 牛客网多校训练第一场 B - Symmetric Matrix(dp)
  2. 光纤看起来长得都一样?其实它们之间大有不同—Vecloud微云
  3. Android EventBus 3.0.0 使用总结
  4. 基于cuda的mmp的bug调试
  5. servlet请求和响应的过程
  6. HashMap的put方法(Java7)和putVal方法(Java8)
  7. 线性筛及其扩展-积性函数
  8. 交互式多模型_26亿参数,智源、清华开源中文大规模预训练模型
  9. Linux高性能server规划——多线程编程(在)
  10. ubuntu16.04下FastDFS+Nginx分布式文件系统
  11. 联系人排序java代码_Android仿微信联系人按字母排序
  12. 聊天类APP的测试点
  13. vs2015社区版有账号后仍然过期
  14. J2ME、J2SE、J2EE 小讲
  15. 电脑如何接受邮件服务器,如何设置邮箱服务器?IMAP、POP3有何区别?
  16. iOS小技能:提取数字(文本框对粘贴内容进行手机号码提取)
  17. 我是怎样的一个人感悟
  18. ubutnu18.04/20.04 接入HDMI显示器后,在 root用户下不能播放声音之解决方案
  19. 线性回归系数的几个性质
  20. 深圳活动会议媒体邀约,电视台,网媒媒体资源

热门文章

  1. 【原创】关于noot的学习笔记
  2. 部落战争手游源码( 服务端+客户端+资源+开发文档)
  3. html表单点击变色如何实现,表单特效 鼠标经过或选中input变色
  4. 达梦客户端工具的使用
  5. 《精通linux设备驱动程序开发》——视频驱动程序
  6. python房价预测_python预测房价
  7. SpringMvc整合邮件发送
  8. RPC(1)HttpClient详细使用 含demo
  9. 浴血凤凰2020最新全自动辅助开发课程
  10. Linux最常用命令50条【呕心沥血呐,望用之取之】