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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结对作业

1、要求地址 博客要求地址:https://www.cnblogs.com/happyzm/p/9626779.htmlFork码云项目地址:https://gitee.com/YeHei/PairProject-Java/tree/master结对伙伴:余硕铭 博客地址:https://gitee.com/hellolv/PersonalProject-Java2…

leetcode(34)在排序数组中查找元素的第一个和最后一个位置

在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len nums.length;int start 0;int end len - 1;int mid 0;int temp 0;while(start<end){mid (startend)/2;if(nums[mid]>target){end mid - …

缩略图不变形

Public Shared Sub MakeSmallImg(ByVal postFile As System.Web.HttpPostedFile, ByVal saveImg As String, ByVal Width As System.Double, ByVal Height As System.Double) Dim originalFilename As String postFile.FileName 生成的高质量图片名称 Dim strGo…

spring boot druid 监控没有sql记录

2019独角兽企业重金招聘Python工程师标准>>> 1 之前配置了 druid的监控 但是 调用查询后 监控没有记录&#xff0c;查了下原因 发现是因为依赖打入错误 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starte…

noip2014联合权值

http://codevs.cn/problem/3728/ 我们要做的是计算距离为2的有序对权值之和及最大值&#xff0c;最大值好弄&#xff0c;但一一枚举是不可行的&#xff0c;因为n<200000&#xff0c;我们可以预处理一下&#xff0c;每次读入边的时候我们把与当前顶点有边相连的所有点的权值中…

11月30在spring mvc中使用Validator框架和文件上传

首先回顾了spring mvc中的表单验证和业务逻辑校验失败后&#xff0c;回到表单页面中显示错误信息的整个内部运行流程。表单校验出错后回到表单注册页面是由默认的SimpleFormController的processFormSubmission方法自动完成的&#xff0c;王涛忘记这一点&#xff0c;他们覆盖了p…

MapReduce其他功能

1&#xff0e; 计数器应用计数器是用来记录job的执行进度和状态的。MapReduce 计数器&#xff08;Counter&#xff09;为我们提供一个窗口&#xff0c;用于观察 MapReduce Job 运行期的各种细节数据。对MapReduce性能调优很有帮助&#xff0c;MapReduce性能优化的评估大部分都是…

用树莓派和PC机搭建多节点私人以太坊网络

发现国内很少有树莓派和电脑组建的私人区块链&#xff0c;所以在自己做实验的过程中记录下来分享给大家,第一次写博客&#xff0c;哈哈 以太坊私有链搭建&#xff08;电脑&#xff0c;树莓派端都适用&#xff09; &#xff08;1&#xff09;新建一个文件夹&#xff0c;例如myc…

CentOS6 YUM安装MariaDB10.3.10

1、先新增加一个MariaDB.repo vi /etc/yum.repos.d/MariaDB.repo[mariadb] name MariaDB baseurl http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos6-amd64/ gpgkey http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck1 官网地址特别慢&#xff0c;所…

统一配置数据库连接符的方法

统一配置数据库连接符的方法 统一配置数据库的方法一.Web.config(应用方便,安全性差)1.Web.config文件<appSettings><add key"strconn" value"serverlocalhost;databasedlcusmgt;uidsa;pwd"/></appSettings>2.调用文件dim strconn as st…

JIRA的text编辑模式

无意中看到了开发经理描述的一个缺陷&#xff0c;descrption里添加了图片&#xff0c;添加了代码&#xff0c;格式非常规整 尝试了图片是可以插入的&#xff0c;但是代码不知道怎么插入的&#xff0c;于是问了下他&#xff0c;当然非常详细的截图抛过来了&#xff0c;告诉我详细…

FusionInsight LibrA V100R002C80SPC300安装指南

FusionInsight LibrA是企业级的大规模并行处理关系型数据库。FusionInsight LibrA采用MPP(Massive Parallel Processing)架构&#xff0c;支持行存储与列存储&#xff0c;提供PB(Petabyte&#xff0c;2的50次方字节)级别数据量的处理能力。FusionInsight LibrA在核心技术上跟传…

女人跳槽:最重要的是你的独立,你的快乐

工作并非证明女人活着的唯一证据。尤其是眼下这一个工作。或者是因为追求更好&#xff0c;或者是因为放弃更坏。一份工作如同一段感情&#xff0c;你不要它&#xff0c;说明它不够好到留住你。没有婚姻好过坏的婚姻&#xff0c;没有工作好过让你天天流泪的工作。如果实在不满意…

云托管,边缘物理计算托管物理计算,你所需要了解的……

随着业务发展&#xff0c;传统数据中心建设复杂性越来越高&#xff0c;基建的管理、设备的繁杂、人力成本的提升&#xff0c;是否让你的运维成本越来越高&#xff1f;企业生产效率却越来越低&#xff1f; 业务快速发展&#xff0c;设备采购周期冗长&#xff0c;大量采购造成CAP…

闲话WPF之十(Dependency属性 [2] )

在前一个Post中&#xff0c;曾提到将要重点研究Dependency属性的三个方面&#xff1a;变化通知&#xff1b;属性值的继承&#xff1b;支持多个提供对象。下面&#xff0c;我将分别就这三个内容进行简单地说明。【变化通知】 在任何时候&#xff0c;只要Dependency属性的值发生了…

1037 Magic Coupon

题目链接&#xff1a;https://pintia.cn/problem-sets/994805342720868352/problems/994805451374313472 这个题目有毒&#xff0c;开始我的while判断是使用的相乘大于0这种判断方式&#xff0c;但是最后一个案例始终过不了&#xff0c;可能是因为越界了&#xff0c;但是越界的…

利用解构赋值获取后端特定字段数据

很多时候&#xff0c;后端接口传过来的数据并不正好是我们需要的。有些场景下会有很多不需要的字段。 这时如果采用单个赋值的方法赋值数据无疑会比较麻烦。解决的办法就是利用解构赋值。 mounted(){let objs {name:test,sex:nan,caree:kaifa,height:180,country:country};({na…

理解ORACLE数据库字符集

一&#xff0e;引言 ORACLE数据库字符集&#xff0c;即Oracle全球化支持(Globalization Support)&#xff0c;或即国家语言支持&#xff08;NLS&#xff09;其作用是用本国语言和格式来存储、处理和检索数据。利用全球化支持&#xff0c;ORACLE为用户提供自己熟悉的数据库母语环…

软件设计师09-面向对象-用例图

感谢任铄老师滴视频 用例图 1&#xff09;描述一组用例、参与者及它们之间的关系 2&#xff09;用例模型用于需求分析阶段 3&#xff09;关系&#xff08;依赖关系&#xff09;&#xff1a;1&#xff09;包含&#xff08;include&#xff09; 1&#xff09;两个以上用例具有共同…

利用正则表达式截取特定字符中间字符

有如下场景&#xff0c;已知一个长字符串&#xff0c;需要获取指定字符串之间的字符。 // 已知字符串 var str body908888huhuc实测实《hu需要body和《hu之间的字符串。定义正则表达式。 var reg /(?<body).(?《hu)/;上述正则表达式利用了&#xff1a;获取指定字符串之后…