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.pswp.cn/news/277135.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277135.shtml
英文地址,請注明出處:http://en.pswp.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;獲取指定字符串之后…