python之序列結構 字典(六)

2021-09-26 23:28:29 字數 2810 閱讀 7611

字典是包含若干鍵值對額無序可變序列,每個元素包含了用冒號分隔開的鍵和值兩部分,表示一種對映或對應關係,定義時不同元素用逗號分隔,所有元素放在一對大括號{}中

要注意的是字典中鍵是python中任意不可變的資料,即整數,實數,複數等,但不能使用列表,集合,字典或其它可變型別作為字典的鍵,鍵也不可重複,值卻可重複

字典建立與刪除

使用賦值運算子『=』將乙個字典賦值給乙個變數即可建立乙個字典變數

e.g.

adict =
或者我們也可以呼叫其建構函式用法

x = dict() #空字典

x = {} #空字典

keys = ['a','b','c','d']

values = [1,2,3,4]

dictionary = dict(zip(keys, values)) #根據已有資料建立字典

d = dict(name='dong', age=39) #以關鍵引數的形式建立字典

adict = dict.fromkeys(['name','age','***'])

#以給定內容為鍵

#建立值為空的字典

#輸出為

#

字典元素的訪問

每個元素表示一種對映關係,根據提供的鍵作為下標可以訪問相應的值,如果字典中不存在這個鍵就會被丟擲異常

adict = 

adict['age'] #輸出為39

adcit['address'] #丟擲異常

故一般遇到這種情況,我們需要異常處理結構,簡單來說就是條件語句進行判斷,如果鍵在列表中,則輸出值,否則列印我們期望輸出的提示語句

同時字典物件提供了

get()

方法來返回指定的鍵對應的值,並且允許指定該鍵不存在時返回特定的值

adict.get('age') #輸出39

adcit.get('address', 'not existed') #指定的鍵不存在時返回指定的預設值

#即輸出'not existed'

setdefault()

用於返回指定鍵對應的值,如果字典中不存在該鍵,就新增乙個新的元素並設定該鍵對應的值(設定為none)

adict.setdefault('address', 'sdifi') #增加新元素
元素的增刪改查

當以指定的鍵為下標為字典元素賦值時,有兩種含義

若該鍵存在,則表示修改該鍵對應的值

若不存在,則表示增加乙個新的鍵值對,也就是增加乙個新元素

adict = 

adict['age] = 35 #修改元素值

adict['address'] = 'sdibf' #增加新元素

#輸出以及使用的一般不注意其元素順序

使用update()

可將另乙個字典中的鍵值對全部一次性新增到當前的字典物件,如果兩個字典存在相同的鍵,則以另乙個字典的值為準對當前的字典進行更新

e.g.

adict = 

adict.update() #修改age的值,同時增加新元素a

setdefault()方法也可用來給字典新增新元素

同時刪除的話也用del命令

del adict['age']
字典物件中的pop()和popitem()可以彈出並刪除指定的元素

adict = 

adict.popitem() #彈出乙個元素age,對空字典會丟擲異常

adict.pop('***') #彈出指定鍵對應的元素

clear()可用來清空字典物件中的所有元素

copy()返回字典中物件的淺複製

標準庫collections中與字典相關的類

import collections

x = collections.ordereddict() #有序字典

x['a'] = 3

x['b'] = 5

x['c']= 8

#輸出為ordereddict([('a',3),('b',5),('c',8)])

import string

import random

x = string.ascii_letters + string.digits + stirng.punctuation

z = ' ' .join([random.choice(x) for i in range(1000)])

from collections import defaultdict

frequences = defaultdict(int) #所有預設值為0

for item in z:

frequences[item] += 1 #修改每個字元的頻次

from collections import counter

frequences = counter(z) #還是前面的那個字串物件

frequences.items()

frequences.most_common(1) #返回出現次數最多的乙個字元及其頻率

frequences.most_common(3) #返回出現次數最多的前三個字元及其頻率

python之 序列與字典遍歷

在python中有六種內建的序列 列表 元組 字串 unicode字串 buffer物件和xrange物件。在這裡暫時只討論字串 列表和元組的遍歷。一 序列遍歷 序列有兩種遍歷 一種通過值 另外一種通過索引 1.1 值遍歷 s abc for x in s print x z andy leaf f...

六 Oracle之序列

ad 在oracle資料庫中,什麼是序列呢?它的用途是什麼?序列 sequence 其實是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值 型別為數字 其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下乙個值。建立序列需要create seq...

python之序列結構 元組(五)

形式上元組的所有元素都在一對圓括號內,元素之間使用逗號分隔,如果元組中只有乙個元素,則必須在最後增加乙個逗號 元組建立與元素訪問 e.g.x 1,2,3 直接把元組賦給乙個變數 type x 檢視型別 x 0 輸出1,支援使用下標訪問特定位置的元素 x 1 最後乙個元素,元組支援雙向索引 x 1 4...