7.18 collection random os sys等模块
7.18 collection random os sys等模块
collection模块
应用场景1
# 具名元组
# 想表示坐标点x为1 y为2 z为5的坐标
from collections import namedtuple
# point = namedtuple('坐标',['x','y','z']) # 第二个参数既可以传可迭代对象
point = namedtuple('坐标','x y z') # 也可以传字符串 但是字符串之间以空格隔开
p = point(1,2,5) # 注意元素的个数必须跟namedtuple第二个参数里面的值数量一致
print(p)
print(p.x)
print(p.y)
print(p.z)>>>
坐标(x=1, y=2, z=5)
1
2
5
from collections import namedtuple
city = namedtuple('天津','location person job')
c = city('剧院','岳云鹏','相声')
print(c)
print(c.location)
print(c.person)
print(c.job)
应用场景2
from collections import namedtuple
card = namedtuple('扑克牌','color number')
# card1 = namedtuple('扑克牌',['color','number'])
A = card('♠','A')
print(A)
print(A.color)
print(A.number)
>>>
扑克牌(color='♠', number='A')
♠
A
队列queue:先进先出(FIFO first in first out)
import queue
q = queue.Queue() # 生成队列对象
q.put('first') # 往队列中添加值
q.put('second')
q.put('third')print(q.get()) # 朝队列要值
print(q.get())
print(q.get())
print(q.get()) # 如果队列中的值取完了 程序会在原地等待 直到从队列中拿到值才停止
双端队列deque
from collections import deque
q = deque(['a','b','c'])
"""之前学习过的方法appendappendleftpoppopleft
"""
q.append(1)
q.appendleft(2)"""
队列不应该支持任意位置插值
只能在首尾插值(不能插队)
"""
q.insert(2,'哈哈哈') # 特殊点:双端队列可以根据索引在任意位置插值
print(q.pop())
print(q.popleft())
print(q.popleft())
有序字典OrderedDict
使用dict时,key是无序的。在对dict做迭代时,我们无法确定key的顺序。
如果要保持key的顺序,可以用OrderedDict:
normal_d = dict([('a',1),('b',2),('c',3)])
print(normal_d)
from collections import OrderedDict
order_d = OrderedDict([('a',1),('b',2),('c',3)])
order_d1 = OrderedDict()
order_d1['x'] = 1
order_d1['y'] = 2
order_d1['z'] = 3
print(order_d1)
for i in order_d1:print(i)
# print(order_d1)
# print(order_d)
order_d1 = dict()
order_d1['x'] = 1
order_d1['y'] = 2
order_d1['z'] = 3
print(order_d)
for i in order_d:print(i)
#OrderedDict的Key会按照插入的顺序排列,不是Key本身排序:
defaultdict
有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
# 普通dict
values = [11, 22, 33,44,55,66,77,88,99,90]my_dict = {}for value in values:if value>66:if my_dict.has_key('k1'):my_dict['k1'].append(value)else:my_dict['k1'] = [value]else:if my_dict.has_key('k2'):my_dict['k2'].append(value)else:my_dict['k2'] = [value]
# defaultdict
from collections import defaultdictvalues = [11, 22, 33,44,55,66,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)
Counter
Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似。
c = Counter('abcdeabcdabcaba')
print c
输出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})
time模块
和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。
#常用方法
1.time.sleep(secs)
(线程)推迟指定的时间运行。单位为秒。
2.time.time()
获取当前时间戳
表示时间的三种方式
在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:
(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
(2)格式化的时间字符串(Format String): ‘1999-12-06
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
(3)元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
转载于:https://www.cnblogs.com/PowerTips/p/11209493.html
7.18 collection random os sys等模块相关推荐
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...
- python 发红包import random用redenv_python 常用模块之random,os,sys 模块
python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...
- 常用模块之 time,datetime,random,os,sys
time与datetime模块 先认识几个python中关于时间的名词: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行&qu ...
- python笔记-6(import导入、time/datetime/random/os/sys模块)
一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内容待日后有深入理解了再来细说 1.import可以导入的两种不同的内容 1.1 *.py文件结尾的文件 ...
- python基础之 序列化,os,sys,random,hashlib
1.序列化 什么是序列化? 是将对象的状态信息转化为可以存储或传输的过程. 简单来说序列化就是一种用来处理对象流的机制.所谓对象流也就是将对象的 内容进行流化,流的概念这里不用多说(就是I/O).我们 ...
- python常见模块命令(os/sys/platform)
python常见模块命令(os/sys/platform) 一.Os Python的标准库中的os模块主要涉及普遍的操作系统功能.可以在Linux和Windows下运行,与平台无关. os.sep 可 ...
- 【Python】Python3.7.3 - sys.path 模块搜索路径详解
文章目录 系统参考 sys.path - 模块搜索路径 用户站点目录(user site directory) 安装包到用户站点目录 第三方站点目录 site.py介绍 python启动选项 PYTH ...
- python使用os和shutil模块进行文件创建,删除,移动,复制,重命名
python使用os和shutil模块进行文件创建,删除,移动,复制,重命名 文章目录: 1 os模块的使用 1.1 os不带path 1.1.1 os.sep 属性:返回系统路径分隔符 1.1.2 ...
- Python OS 操作系统操作模块
一.o s模块的使用 # os模块# os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os#getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) r ...
最新文章
- shell命令之(一) 初探grep
- 表达式类型的实现数据结构_Redis系列(九)底层数据结构之五种基础数据类型的实现...
- hbase 学习(十三)集群间备份原理
- 计算机不能启动 无法验证数字签名,win10改win7系统启动后提示:无法验证此文件的数字签名怎么办?...
- js实现删除确认提示框
- 欧姆定律基本知识(笔记)
- rocketmq存储消息mysql_RocketMQ消息消费以及进度管理解析
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- TensorFlow入门:Feed和Fetch
- Newtonsoft.Json序列化和反序列之javascriptConvert.SerializeObject,DeserializeObject,JsonWriter,JsonReader...
- Matlab2016a安装libsvm
- 用canvas画圆饼图
- java 有序map_java 有序Map之TreeMap的使用
- IAR+STVP烧录程序排错
- 如何查找各个手机放序列号
- 2.5css ps切图、
- c语言运行环境的熟悉实验报告,c语言实验报告
- 【中级软考—软件设计师】2操作系统2.6段页式存储【**】:2.6.1页式存储
- [原] Python 根据设备编号获取设备名称
- 精准准确的统一社会信用代码正则(js)
热门文章
- linux系统的运行定义在,Linux系统运行级管理
- 2007cad多个文件窗口上部排列_【中考信息技术总复习讲义】模块三 操作系统与文件管理...
- Error:java: 无效的目标发行版: 11解决方案
- docker镜像为什么要采用分层结构
- 万兆以太网测试仪应该具备的测试功能
- linux vlc流媒体服务器,vlc media server rtsp 流媒体服务器搭建成功经验分享
- 最长等差数列_最长等差数列分析
- st庞大股票股吧_黄金变石头!6倍大牛股提前锁定退市,市值蒸发98%,还有这些股票拉响警报(附名单)...
- 盘点全球最厉害的14位程序员,你认识几个?
- myjdbc链接数据库.增删改查