1. 程式人生 > >Python技巧之--collections(OrderedDict,Counter,deque)

Python技巧之--collections(OrderedDict,Counter,deque)

目錄

OrderedDict

import collections
print "Regular dictionary"
d={}
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
    print k,v

print "\nOrder dictionary"
d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['1'] = '1'
d1['2'] = '2'
for k,v in d1.items():
    print
k,v 輸出: Regular dictionary a A c C b B Order dictionary a A b B c C 1 1 2 2
print 'Regular dictionary:'
d2={}
d2['a']='A'
d2['b']='B'
d2['c']='C'

d3={}
d3['c']='C'
d3['a']='A'
d3['b']='B'

print d2 == d3

print '\nOrderedDict:'
d4=collections.OrderedDict()
d4['a']='A'
d4['b']='B'
d4['c']='C'

d5=collections.OrderedDict()
d5['c'
]='C' d5['a']='A' d5['b']='B' print d1==d2 輸出: Regular dictionary: True OrderedDict: False
dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0]))
print kd
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda
t:t[1])) print vd #輸出 OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)]) OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

Counter

    >>> c = Counter('abcdeabcdabcaba')  # count elements from a string

    >>> c.most_common(3)                # three most common elements
    [('a', 5), ('b', 4), ('c', 3)]
    >>> sorted(c)                       # list all unique elements
    ['a', 'b', 'c', 'd', 'e']
    >>> ''.join(sorted(c.elements()))   # list elements with repetitions
    'aaaaabbbbcccdde'
    >>> sum(c.values())                 # total of all counts
    15

    >>> c['a']                          # count of letter 'a'
    5
    >>> for elem in 'shazam':           # update counts from an iterable
    ...     c[elem] += 1                # by adding 1 to each element's count
    >>> c['a']                          # now there are seven 'a'
    7
    >>> del c['b']                      # remove all 'b'
    >>> c['b']                          # now there are zero 'b'
    0

    >>> d = Counter('simsalabim')       # make another counter
    >>> c.update(d)                     # add in the second counter
    >>> c['a']                          # now there are nine 'a'
    9

    >>> c.clear()                       # empty the counter
    >>> c
    Counter()

    Note:  If a count is set to zero or reduced to zero, it will remain
    in the counter until the entry is deleted or the counter is cleared:

    >>> c = Counter('aaabbc')
    >>> c['b'] -= 2                     # reduce the count of 'b' by two
    >>> c.most_common()                 # 'b' is still in, but its count is zero
    [('a', 3), ('c', 1), ('b', 0)]

deque

相關推薦

Python技巧--collectionsOrderedDictCounterdeque

目錄 OrderedDict import collections print "Regular dictionary" d={} d['a']='A' d['b']='B' d['c']='C' for k,v in d.items():

不折騰毋寧死。Python修煉目錄

OS 交互 bytes 編碼 ext 基礎 while循環 進制 面向 目錄 一、Python基礎 二、函數和常用模塊 三、面向對象 四、網絡編程基礎 五、網絡編程進階 六、WEB開發基礎 七、WEB開發進階 八、算法與設計模式 一、Py

python學習基礎篇——列表字典集合

cef mes 所有 聽說 基本 變量 .so tdi 作用 一、列表,元組操作 定義列表 names = [‘Alex‘,"Tenglan",‘Eric‘] 查看 >>> names[0] ‘Alex‘ >>> names[2]

Python學習——標準資料型別續——列表元組字典集合

0.Python之禪 可以通過在python直譯器中輸入import this 檢視python應該注意的一些規範與原則,如下: 1.列表 元素用方括號括起,元素之間用逗號隔開,如[1,2,3,4] 三大特點: (1)異構性 列表裡想裝啥就裝啥,即:他可以包含不同種類、

王亟亟的Python學習-dictionaryset,函式函式引數

-dictionary -set -函式 -函式引數 dictionary 鍵-值(key-value)儲存,具有極快的查詢速度。為什麼反覆提起查詢速度,因為如果你一個用list只是為了獲取裡面X元素內容的話效能是相對比較查的,極力推薦

python學習

[1] size class dex epc uri msu 語句 這就是 繼續昨天的學習,學到了數組。 首先有兩個數組,name1和name2.我們可以將兩個數組合並 name1=[1,2,3,4] name2=[5,6,7,8] names=name1.extend(

一個鹹魚的Python爬蟲:爬取網頁圖片

you os.path odin 路徑 生成 存在 parent lose exist 學完Requests庫與Beautifulsoup庫我們今天來實戰一波,爬取網頁圖片。依照現在所學只能爬取圖片在html頁面的而不能爬取由JavaScript生成的圖。所以我找了這個網站

python學習使用socketserver進行ftp斷點續傳

def += __init__ con 不存在 不為 local 接收 class 最近學習python到socketserver,本著想試一下水的深淺,采用Python3.6. 目錄結構如下: receive_file和file為下載或上傳文件存放目錄,ftp_clie

python學習十二

pack 分享 psi python 模塊 shp 詳解 階段 new from 這節主要介紹一下import!很實用的調用模塊的功能。 導入模塊 是導入真實的代碼 而導入包 是導入包下面的 __init__() 文件 這兩個是不一樣的 先說模塊定義 模塊 它就是一個

python--前端CSScss頁面引入方法、選擇器基本選擇器、組合選擇器

gin 如果 優點 選擇器 alt 前端 設置字體 行高 常用 CSS產生背景: 為了讓網頁元素的樣式更加豐富,也為了讓網頁的內容和樣式能拆分開,CSS由此思想而誕生,CSS是 Cascading Style Sheets 的首字母縮寫,意思是層疊樣式表。 有了CSS,ht

我的Python學習day1

python  一直以來都不喜歡開發,也比較排斥,於是大學分專業選擇了網絡工程。但是學院又不重視網絡,大四實習的時候都去培訓開發唯獨我選擇了繼續沿著網絡方向走下去。現在已經工作一年多了,傳統網絡工程師的需求已經非常小了。最終還是回到了開發,選擇了Python,開啟我人生的新征程。  這是到今天為止我寫過最長的

Python學習day5字符串常用操作命令簡介

堅持就是勝利 字符串常用操作命令簡介名字描述舉例.isdigit判斷是否是數字Name=demonlg,print name.isdigit,會打印出False,因為demonlg不是數字.inde

python學習 -- 函數、JSON、終端樣式

blog ade def 數量 通過 等於 name tuple args 函數 函數構成 定義函數:使用def即可 def __getName(idCard): return user_info[idCard].Name 其中,__get

PythonNumPyaxis=0 與axis=1區分

tail ner def ros som 分享 然而 article 本質 轉自:http://blog.csdn.net/wangying19911991/article/details/73928172 https://www.zhihu.com/

Python學習筆記015——文件file的常規操作二進制文件

cde enc blog 模式 1byte 二進制文件 整數 style rst 1 字節(byte)的單位 1KB = 2*10 Bytes 1MB = 1KB * 1024 = 2**20 Bytes 1GB = 1KB * 1K * 1K = 2**30 Bytes

python函數五叠代器生成器

ext 構建 什麽是 器協 生成 false 推導式 gen ict 一。叠代器 1.可叠代對象(只含有__iter__方法的數據是可叠代對象) 常見的可叠代對象:str list tuple dict set range 1.1什麽是可叠代對象? 方法一: dir(被測對

Python 學習

在外 封裝 過程 數列 == 3.6 開頭 res form Python 學習之路(二) 以下所用的是Python 3.6 一、條件語句 簡單判斷 1 if 判斷條件: 2 執行語句…… 3 else: 4 執行語句…… 復雜判斷 1 if 判斷

Python學習

Python 基礎 Python基礎學習1(1)變量在Python中用來存儲數據所指向的內存地址叫做變量(2)變量的命名變量的命名由數字,字母,下劃線組成,數字不能開頭;不要使用Python中的關鍵字和函數名稱來命名變量;命名時要簡明,具有描述性;變量名區分大小寫。命名方式遵循駝峰命名法和下劃線命名法

python開發

數字 美團 其中 class 翻譯 電視 ... 硬件 算數運算 一、python基礎入門 1、編程語言 程序員與計算機溝通的語言就叫做編程語言 編程語言發展至今經歷了以下: ①.機器語言:站在計算機(奴隸)的角度,說計算機能聽懂的語言,那就是直接用二進制編程,直接操作

Python學習爬蟲HTTP和HTTPS

CP 發出 net 長度 現在 消息頭 理論 LV 模型 HTTP和HTTPS HTTP協議(HyperText Transfer Protocol,超文本傳輸協議):是一種發布和接收 HTML頁面的方法。 HTTPS(Hypertext Transfer Protoc