當前位置:首頁 » 編程語言 » python的字典原理

python的字典原理

發布時間: 2023-01-27 02:06:37

『壹』 python中什麼是字典序

1.python中字典就是無序的
2.對字典數據進行排序,無論是根據鍵或值,都需要轉化為列表或元組進行。sorted()函數返回的即是一個列表集合

『貳』 Python3的元組,字典,列表,集合有什麼聯系和區別

4個都是python的數據結構。
元組和列表的底層實現是一樣的,本質都是把一堆東西放在一排,區別在於元祖放完後就不能改了。
你把字典理解成我們普通用的字典就可以了,而集合就是把字典的所有value都設置成None。字典和集合的底層實現原理是一樣的,但初學者不必關注這個原理。集合與數學中的集合有相同性質,比如唯一性,對比字典中key的唯一性來理解一下。
比方:你遇到一個沒見過的字,查查看是不是標準的漢字,這就是集合的作用,集合只關注有沒有的問題;如果是標准漢字,你要看看這個字的意思,這就是字典的作用;你現在找來一個漢字,打算組成成語,然後再找幾個字,向第一個漢字左右放,就是列表的作用;一旦發現一個成語,就固定不變了,字和字的排列都不能改,這就是元祖。

『叄』 能具體說一下嗎

變數是保存存儲值的內存位置。也就是說,當創建一個變數時,可以在內存中保留一些空間。

基於變數的數據類型,解釋器分配內存並決定可以存儲在保留的存儲器中的內容。 因此,通過為變數分配不同的數據類型,可以在這些變數中存儲的數據類型為整數,小數或字元等等。

將值分配給變數

在Python中,變數不需要明確的聲明類型來保留內存空間。當向變數分配值時,Python會自動發出聲明。 等號(=)用於為變數賦值。

=運算符左側的操作數是變數的名稱,而=運算符右側的操作數是將在存儲在變數中的值。 例如 -

#!/usr/bin/python3counter = 100 # 一個整型數miles = 999.99 # 一個浮點數name = "Maxsu" # 一個字元串site_url = "http://www.yii.com" # 一個字元串print (counter)print (miles)print (name)print (site_url)Python

這里,100,999.99和「Maxsu」分別是分配給counter,miles和name變數的值。執行上面代碼將產生以下結果 -

100
999.99
Maxsu
http://www.yii.comShell

多重賦值

Python允許同時為多個變數分配單個值。

例如 -

a = b = c = 1Python

這里,創建一個整數對象,其值為1,並且所有三個變數都分配給相同的內存位置。還可以將多個對象分配給多個變數。 例如 -

a, b, c = 10, 20, "maxsu"Python

這里,將兩個值為10和20的整數對象分別分配給變數a和b,並將一個值為「maxsu」的字元串對象分配給變數c。

標准數據類型

存儲在內存中的數據可以是多種類型。 例如,一個人的年齡可存儲為一個數字值,他的地址被存儲為字母數字字元串。 Python具有各種標准數據類型,用於定義可能的操作以及每個標准數據類型的存儲方法。

Python有五種標准數據類型 -

  • 1.數字

  • 2.字元串

  • 3.列表

  • 4.元組

  • 5.字典

  • 1.Python數字

    數字數據類型存儲數字值。當為其分配值時,將創建數字對象。 例如 -

  • var1 = 10var2 = 20Python

  • 可以使用del語句刪除對數字對象的引用。del語句的語法是 -

  • del var1[,var2[,var3[....,varN]]]]Python

  • 可以使用del語句刪除單個對象或多個對象。

    例如 -

  • del vardel var_a, var_bPython

  • Python支持三種不同的數值類型 -

  • int(有符號整數)

  • float(浮點實值)

  • complex(復數)

  • Python3中的所有整數都表示為長整數。 因此,長整數沒有單獨的數字類型。

    例子

    以下是一些數字示例 -

    int

    float

    complex

    10 0.0 3.14j

    100 15.20 45.j

    -786 -21.9 9.322e-36j

    080 32.3+e18 .876j

    -0490 -90. -.6545+0J

    -0x260 -32.54e100 3e+26J

    0x69 70.2-E12 4.53e-7j

    復數是由x + yj表示的有序對的實數浮點數組成,其中x和y是實數,j是虛數單位。

    2.Python字元串

    Python中的字元串被標識為在引號中表示的連續字元集。Python允許雙引號或雙引號。 可以使用片段運算符([]和[:])來獲取字元串的子集(子字元串),其索引從字元串開始處的索引0開始,並且以-1表示字元串中的最後一個字元。

    加號(+)是字元串連接運算符,星號(*)是重復運算符。例如 -

  • #!/usr/bin/python3#coding=utf-8# save file: variable_types_str1.pystr = 'yii.com'print ('str = ', str) # Prints complete stringprint ('str[0] = ',str[0]) # Prints first character of the stringprint ('str[2:5] = ',str[2:5]) # Prints characters starting from 3rd to 5thprint ('str[2:] = ',str[2:]) # Prints string starting from 3rd characterprint ('str[-1] = ',str[-1]) # 最後一個字元,結果為:'!'print ('str * 2 = ',str * 2) # Prints string two timesprint ('str + "TEST" = ',str + "TEST") # Prints concatenated stringPython

  • 將上面代碼保存到variable_types_str1.py文件中,執行將產生以下結果 -

  • F:worksppython>python variable_types_str1.py

  • str = yii.com

  • str[0] = y

  • str[2:5] = iba

  • str[2:] = i.com

  • str[-1] = m

  • str * 2 = yii.comyii.com

  • str + "TEST" = yii.comTEST


  • F:worksppython>Shell

  • 2.Python列表

    列表是Python復合數據類型中最多功能的。 一個列表包含用逗號分隔並括在方括弧([])中的項目。在某種程度上,列表類似於C語言中的數組。它們之間的區別之一是Python列表的所有項可以是不同的數據類型,而C語言中的數組只能是同種類型。

    存儲在列表中的值可以使用切片運算符([]和[])來訪問,索引從列表開頭的0開始,並且以-1表示列表中的最後一個項目。 加號(+)是列表連接運算符,星號(*)是重復運算符。例如 -

  • #!/usr/bin/python3#coding=utf-8# save file: variable_types_str1.pylist = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]tinylist = [100, 'maxsu']print ('list = ', list) # Prints complete listprint ('list[0] = ',list[0]) # Prints first element of the listprint ('list[1:3] = ',list[1:3]) # Prints elements starting from 2nd till 3rd print ('list[2:] = ',list[2:]) # Prints elements starting from 3rd elementprint ('list[-3:-1] = ',list[-3:-1]) print ('tinylist * 2 = ',tinylist * 2) # Prints list two timesprint ('list + tinylist = ', list + tinylist) # Prints concatenated listsPython

  • 將上面代碼保存到variable_types_str1.py文件中,執行將產生以下結果 -

  • F:worksppython>python variable_types_list.py

  • list = ['yes', 'no', 786, 2.23, 'minsu', 70.2]

  • list[0] = yes

  • list[1:3] = ['no', 786]

  • list[2:] = [786, 2.23, 'minsu', 70.2]

  • list[-3:-1] = [2.23, 'minsu']

  • tinylist * 2 = [100, 'maxsu', 100, 'maxsu']

  • list + tinylist = ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']


  • F:worksppython>Shell

  • 3.Python元組

    元組是與列表非常類似的另一個序列數據類型。元組是由多個值以逗號分隔。然而,與列表不同,元組被括在小括弧內(())。

    列表和元組之間的主要區別是 - 列表括在括弧([])中,列表中的元素和大小可以更改,而元組括在括弧(())中,無法更新。元組可以被認為是只讀列表。 例如 -

  • #!/usr/bin/python3#coding=utf-8# save file : variable_types_tuple.pytuple = ( 'maxsu', 786 , 2.23, 'yii', 70.2 )tinytuple = (999.0, 'maxsu')# tuple[1] = 'new item value' 不能這樣賦值print ('tuple = ', tuple) # Prints complete tupleprint ('tuple[0] = ', tuple[0]) # Prints first element of the tupleprint ('tuple[1:3] = ', tuple[1:3]) # Prints elements starting from 2nd till 3rd print ('tuple[-3:-1] = ', tuple[-3:-1]) # 輸出結果是什麼?print ('tuple[2:] = ', tuple[2:]) # Prints elements starting from 3rd elementprint ('tinytuple * 2 = ',tinytuple * 2) # Prints tuple two timesprint ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuplePython

  • 將上面代碼保存到variable_types_tuple.py文件中,執行將產生以下結果 -

  • F:worksppython>python variable_types_tuple.py

  • tuple = ('maxsu', 786, 2.23, 'yii', 70.2)

  • tuple[0] = maxsu

  • tuple[1:3] = (786, 2.23)

  • tuple[-3:-1] = (2.23, 'yii')

  • tuple[2:] = (2.23, 'yii', 70.2)

  • tinytuple * 2 = (999.0, 'maxsu', 999.0, 'maxsu')

  • tuple + tinytuple = ('maxsu', 786, 2.23, 'yii', 70.2, 999.0, 'maxsu')


  • F:worksppython>Shell

  • 以下代碼對於元組無效,因為嘗試更新元組,但是元組是不允許更新的。類似的情況可能與列表 -

  • #!/usr/bin/python3tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]tuple[2] = 1000 # 無法更新值,程序出錯list[2] = 1000 # 有效的更新,合法Python

  • Python字典

    Python的字典是一種哈希表類型。它們像Perl中發現的關聯數組或散列一樣工作,由鍵值對組成。字典鍵幾乎可以是任何Python數據類型,但通常為了方便使用數字或字元串。另一方面,值可以是任意任意的Python對象。

    字典由大括弧({})括起來,可以使用方括弧([])分配和訪問值。例如 -

  • #!/usr/bin/python3#coding=utf-8# save file : variable_types_dict.pydict = {}dict['one'] = "This is one"dict[2] = "This is my"tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}print ("dict['one'] = ", dict['one']) # Prints value for 'one' keyprint ('dict[2] = ', dict[2]) # Prints value for 2 keyprint ('tinydict = ', tinydict) # Prints complete dictionaryprint ('tinydict.keys() = ', tinydict.keys()) # Prints all the keysprint ('tinydict.values() = ', tinydict.values()) # Prints all the valuesPython

  • 將上面代碼保存到variable_types_dict.py文件中,執行將產生以下結果 -

  • F:worksppython>python variable_types_dict.py

  • dict['one'] = This is one

  • dict[2] = This is my

  • tinydict = {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}

  • tinydict.keys() = dict_keys(['name', 'code', 'dept'])

  • tinydict.values() = dict_values(['maxsu', 1024, 'IT Dev'])Shell

  • 字典中的元素沒有順序的概念。但是說這些元素是「亂序」是不正確的; 它們是無序的。

    數據類型轉換

    有時,可能需要在內置類型之間執行轉換。要在類型之間進行轉換,只需使用類型名稱作為函數即可。

    有以下幾種內置函數用於執行從一種數據類型到另一種數據類型的轉換。這些函數返回一個表示轉換值的新對象。它們分別如下所示 -

    編號

    函數

    描述

    1 int(x [,base]) 將x轉換為整數。如果x是字元串,則要base指定基數。

    2 float(x) 將x轉換為浮點數。

    3 complex(real [,imag]) 創建一個復數。

    4 str(x) 將對象x轉換為字元串表示形式。

    5 repr(x) 將對象x轉換為表達式字元串。

    6 eval(str) 評估求值一個字元串並返回一個對象。

    7 tuple(s) 將s轉換為元組。

    8 list(s) 將s轉換為列表。

    9 set(s) 將s轉換為集合。

    10 dict(d) 創建一個字典,d必須是(key,value)元組的序列

    11 frozenset(s) 將s轉換為凍結集

    12 chr(x) 將整數x轉換為字元

    13 unichr(x) 將整數x轉換為Unicode字元。

    14 ord(x) 將單個字元x轉換為其整數值。

    15 hex(x) 將整數x轉換為十六進制字元串。

    16 oct(x) 將整數x轉換為八進制字元串。

『肆』 Python中字典與列表的區別

字典:你知道一個key可以找到一個對應的value,通常你知道key是什麼,像查字典一樣,方向明確

列表:包含各種value,具體有些什麼值不知道,通常需要遍歷來取值。

『伍』 python裡面的字典有什麼用

字典是另一種可變容器模型,可存儲任意類型對象。

字典的每個鍵值 key-value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括弧 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

鍵一般是唯一的,必須是不可變的,如字元串,數字或元組。值不需要唯一,可以取任何數據類型。

在需要使用hash時,就需要用到字典。
比如在統計字元個數時,可以使用字典。
d = {}
for char in strs:
d[char] = d.get(char, 0) + 1

『陸』 Python中文分詞的原理你知道嗎

中文分詞,即 Chinese Word Segmentation,即將一個漢字序列進行切分,得到一個個單獨的詞。表面上看,分詞其實就是那麼回事,但分詞效果好不好對信息檢索、實驗結果還是有很大影響的,同時分詞的背後其實是涉及各種各樣的演算法的。

中文分詞與英文分詞有很大的不同,對英文而言,一個單詞就是一個詞,而漢語是以字為基本的書寫單位,詞語之間沒有明顯的區分標記,需要人為切分。根據其特點,可以把分詞演算法分為四大類:

基於規則的分詞方法

基於統計的分詞方法

基於語義的分詞方法

基於理解的分詞方法

下面我們對這幾種方法分別進行總結。

基於規則的分詞方法

這種方法又叫作機械分詞方法、基於字典的分詞方法,它是按照一定的策略將待分析的漢字串與一個「充分大的」機器詞典中的詞條進行匹配。若在詞典中找到某個字元串,則匹配成功。該方法有三個要素,即分詞詞典、文本掃描順序和匹配原則。文本的掃描順序有正向掃描、逆向掃描和雙向掃描。匹配原則主要有最大匹配、最小匹配、逐詞匹配和最佳匹配。

最大匹配法(MM)。基本思想是:假設自動分詞詞典中的最長詞條所含漢字的個數為 i,則取被處理材料當前字元串序列中的前 i 個字元作為匹配欄位,查找分詞詞典,若詞典中有這樣一個 i 字詞,則匹配成功,匹配欄位作為一個詞被切分出來;若詞典中找不到這樣的一個 i 字詞,則匹配失敗,匹配欄位去掉最後一個漢字,剩下的字元作為新的匹配欄位,再進行匹配,如此進行下去,直到匹配成功為止。統計結果表明,該方法的錯誤率 為 1/169。

逆向最大匹配法(RMM)。該方法的分詞過程與 MM 法相同,不同的是從句子(或文章)末尾開始處理,每次匹配不成功時去掉的是前面的一個漢字。統計結果表明,該方法的錯誤率為 1/245。

逐詞遍歷法。把詞典中的詞按照由長到短遞減的順序逐字搜索整個待處理的材料,一直到把全部的詞切分出來為止。不論分詞詞典多大,被處理的材料多麼小,都得把這個分詞詞典匹配一遍。

設立切分標志法。切分標志有自然和非自然之分。自然切分標志是指文章中出現的非文字元號,如標點符號等;非自然標志是利用詞綴和不構成詞的詞(包 括單音詞、復音節詞以及象聲詞等)。設立切分標志法首先收集眾多的切分標志,分詞時先找出切分標志,把句子切分為一些較短的欄位,再用 MM、RMM 或其它的方法進行細加工。這種方法並非真正意義上的分詞方法,只是自動分詞的一種前處理方式而已,它要額外消耗時間掃描切分標志,增加存儲空間存放那些非 自然切分標志。

最佳匹配法(OM)。此法分為正向的最佳匹配法和逆向的最佳匹配法,其出發點是:在詞典中按詞頻的大小順序排列詞條,以求縮短對分詞詞典的檢索時 間,達到最佳效果,從而降低分詞的時間復雜度,加快分詞速度。實質上,這種方法也不是一種純粹意義上的分詞方法,它只是一種對分詞詞典的組織方式。OM 法的分詞詞典每條詞的前面必須有指明長度的數據項,所以其空間復雜度有所增加,對提高分詞精度沒有影響,分詞處理的時間復雜度有所降低。

此種方法優點是簡單,易於實現。但缺點有很多:匹配速度慢;存在交集型和組合型歧義切分問題;詞本身沒有一個標準的定義,沒有統一標準的詞集;不同詞典產生的歧義也不同;缺乏自學習的智能性。

基於統計的分詞方法

該方法的主要思想:詞是穩定的組合,因此在上下文中,相鄰的字同時出現的次數越多,就越有可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好地反映成詞的可信度。可以對訓練文本中相鄰出現的各個字的組合的頻度進行統計,計算它們之間的互現信息。互現信息體現了漢字之間結合關系的緊密程度。當緊密程 度高於某一個閾值時,便可以認為此字組可能構成了一個詞。該方法又稱為無字典分詞。

該方法所應用的主要的統計模型有:N 元文法模型(N-gram)、隱馬爾可夫模型(Hiden Markov Model,HMM)、最大熵模型(ME)、條件隨機場模型(Conditional Random Fields,CRF)等。

在實際應用中此類分詞演算法一般是將其與基於詞典的分詞方法結合起來,既發揮匹配分詞切分速度快、效率高的特點,又利用了無詞典分詞結合上下文識別生詞、自動消除歧義的優點。

基於語義的分詞方法

語義分詞法引入了語義分析,對自然語言自身的語言信息進行更多的處理,如擴充轉移網路法、知識分詞語義分析法、鄰接約束法、綜合匹配法、後綴分詞法、特徵詞庫法、矩陣約束法、語法分析法等。

擴充轉移網路法

該方法以有限狀態機概念為基礎。有限狀態機只能識別正則語言,對有限狀態機作的第一次擴充使其具有遞歸能力,形成遞歸轉移網路 (RTN)。在RTN 中,弧線上的標志不僅可以是終極符(語言中的單詞)或非終極符(詞類),還可以調用另外的子網路名字分非終極符(如字或字串的成詞條件)。這樣,計算機在 運行某個子網路時,就可以調用另外的子網路,還可以遞歸調用。詞法擴充轉移網路的使用, 使分詞處理和語言理解的句法處理階段交互成為可能,並且有效地解決了漢語分詞的歧義。

矩陣約束法

其基本思想是:先建立一個語法約束矩陣和一個語義約束矩陣, 其中元素分別表明具有某詞性的詞和具有另一詞性的詞相鄰是否符合語法規則, 屬於某語義類的詞和屬於另一詞義類的詞相鄰是否符合邏輯,機器在切分時以之約束分詞結果。

基於理解的分詞方法

基於理解的分詞方法是通過讓計算機模擬人對句子的理解,達到識別詞的效果。其基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷,即它模擬了人對句子的理解過程。這種分詞方法需要使用大量的語言知識和信息。目前基於理解的分詞方法主要有專家系統分詞法和神經網路分詞法等。

專家系統分詞法

從專家系統角度把分詞的知識(包括常識性分詞知識與消除歧義切分的啟發性知識即歧義切分規則)從實現分詞過程的推理機中獨立出來,使知識庫的維護與推理機的實現互不幹擾,從而使知識庫易於維護和管理。它還具有發現交集歧義欄位和多義組合歧義欄位的能力和一定的自學習功能。

神經網路分詞法

該方法是模擬人腦並行,分布處理和建立數值計算模型工作的。它將分詞知識所分散隱式的方法存入神經網路內部,通過自學習和訓練修改內部權值,以達到正確的分詞結果,最後給出神經網路自動分詞結果,如使用 LSTM、GRU 等神經網路模型等。

神經網路專家系統集成式分詞法

該方法首先啟動神經網路進行分詞,當神經網路對新出現的詞不能給出准確切分時,激活專家系統進行分析判斷,依據知識庫進行推理,得出初步分析,並啟動學習機制對神經網路進行訓練。該方法可以較充分發揮神經網路與專家系統二者優勢,進一步提高分詞效率。

以上便是對分詞演算法的基本介紹。

『柒』 python 中關於字典的鍵

WTF
"JavaScript" 怎麼不見了?

1.Python 字典通過檢查鍵值是否相等和比較哈希值來確定兩個鍵是否相同.
2.具有相同值的不可變對象在Python中始終具有相同的哈希值.

具有不同值的對象也可能具有相同的哈希值(哈希沖突).

看完記得點贊哦,筆芯

『捌』 Python中的字典是什麼

字典(Dictionary)

  • 字典也是Python語言中經常使用的一種數據類型。跟列表類似,字典是另外一種可存儲任意類型的數據,並且字典儲存的數據也是可以修改的。

  • 不同於列表的是,字典每個基本元素都包括兩個部分:鍵(key) 和 鍵對應的值(value)。

  • 鍵和值之間用冒號(:)分割,每對元素之間用逗號(,)分割,整個字典的數據在大括弧{}中,格式如下所示:

  • d = {"key1" : 1, "key2" : "hi", "key3":[]}

  • 在字典中,鍵的內容是不可重復的。鍵為不可變數據類型,值可以是任何數據類型。在這里,鍵只支持字元串類型。

  • 字典最大的優勢就是能在海量數據下利用「鍵」快速查找出想要的值,當有很多數據需要存儲的時候,我們給每個值都打個標簽,也就是「鍵」;想要調用這個值時,字典能夠利用這個標簽快速幫我們找到它。但是如果標簽重復了,字典不知道哪個值才是對的,就會報錯哦~

  • 列表是根據排序來記錄每項的值,但是字典是沒有順序的,所以同一字典,每次列印出的排序可能是不同的。「鍵」才是調用字典的關鍵元素。

  • 字典是基礎的數據類型,所以變數也可以被賦值為字典。

『玖』 Python中字典為什麼比列錶快

1、為什麼Python中字典比列錶快?
因為字典中是鍵-值對(key-value),且字典無順序、自動去重、佔用內存多,用內存換取速度。最重要的是因為字典是hash類型的。
2、那什麼是hash呢?
哈希演算法將任意長度的二進制值映射為較短的固定長度的二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。
如果散列一段明文而且哪怕只更改該段落的一個字母,隨後的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數據的哈希值可以檢驗數據的完整性。一般用於快速查找和加密演算法。
3、dict會把所有的key變成hash 表,然後將這個表進行排序。
你通過data[key]去查data字典中一個key的時候,python會先把這個key hash成一個數字,然後拿這個數字到hash表中看沒有這個數字, 如果有,拿到這個key在hash表中的索引,拿到這個索引去與此key對應的value的內存地址那取值就可以了。

『拾』 python字典什麼數據結

下面我們來具體看下字典的用法:
一、創建字典

字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本語法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此創建字典:
dict1 = { 'abc': 456 };dict2 = { 'abc': 123, 98.6: 37 };

注意:

每個鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,整體放在花括弧中({})。
鍵必須獨一無二,但值則不必。
值可以取任何數據類型,但必須是不可變的,如字元串,數或元組。

二、訪問字典里的值

把相應的鍵放入熟悉的方括弧,如下實例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Name']: ", dict['Name'];print "dict['Age']: ", dict['Age'];#以上實例輸出結果: #dict['Name']: Zara#dict['Age']: 7

如果用字典里沒有的鍵訪問數據,會輸出錯誤如下:

#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; print "dict['Alice']: ", dict['Alice']; #以上實例輸出結果: #dict['Zara']:#Traceback (most recent call last):# File "test.py", line 4, in <mole># print "dict['Alice']: ", dict['Alice'];#KeyError: 'Alice'[/code]

三、修改字典

向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; dict['Age'] = 8; # update existing entrydict['School'] = "DPS School"; # Add new entry print "dict['Age']: ", dict['Age'];print "dict['School']: ", dict['School'];#以上實例輸出結果:#dict['Age']: 8#dict['School']: DPS School

四、刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操作。

顯示刪除一個字典用del命令,如下實例:

#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; del dict['Name']; # 刪除鍵是'Name'的條目dict.clear(); # 清空詞典所有條目del dict ; # 刪除詞典 print "dict['Age']: ", dict['Age'];print "dict['School']: ", dict['School'];#但這會引發一個異常,因為用del後字典不再存在: dict['Age']:#Traceback (most recent call last):# File "test.py", line 8, in <mole># print "dict['Age']: ", dict['Age'];#TypeError: 'type' object is unsubscriptable

五、字典鍵的特性

字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。

兩個重要的點需要記住:

1)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住,如下實例:
#!/usr/bin/python dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}; print "dict['Name']: ", dict['Name'];#以上實例輸出結果:#dict['Name']: Manni

2)鍵必須不可變,所以可以用數,字元串或元組充當,所以用列表就不行,如下實例:
#!/usr/bin/python dict = {['Name']: 'Zara', 'Age': 7}; print "dict['Name']: ", dict['Name'];#以上實例輸出結果: #Traceback (most recent call last):# File "test.py", line 3, in <mole># dict = {['Name']: 'Zara', 'Age': 7};#TypeError: list objects are unhashable

六、字典內置函數&方法

Python字典包含了以下內置函數:

1、cmp(dict1, dict2):比較兩個字典元素。
2、len(dict):計算字典元素個數,即鍵的總數。
3、str(dict):輸出字典可列印的字元串表示。
4、type(variable):返回輸入的變數類型,如果變數是字典就返回字典類型。
Python字典包含了以下內置方法:

1、radiansdict.clear():刪除字典內所有元素
2、radiansdict.():返回一個字典的淺復制
3、radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4、radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果鍵在字典dict里返回true,否則返回false
6、radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組
7、radiansdict.keys():以列表返回一個字典所有的鍵
8、radiansdict.setdefault(key, default=None):和get()類似, 但如果鍵不已經存在於字典中,將會添加鍵並將值設為default
9、radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict里
10、radiansdict.values():以列表返回字典中的所有值

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:583
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:877
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:572
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:758
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:674
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1001
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:245
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:104
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:796
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:702