python數據類型總結——字典

2021-01-07 07blog

查字典的時候,通常我們會從某個字的特徵出發,如拼音或偏旁,最終根據索引,找到這個字。python中,也提供一種數據結構,它包含鍵和值兩個部分,通過鍵可以快速地找到對應的值。

python字典

字典通過大括號來聲明,可包含若干個鍵值對。字典是可變的。如下:

字典的聲明與修改

上面的demo也展示了可以通過鍵來訪問字典中的值,通過中括號加鍵名的方式。當試圖訪問字典中沒有的鍵時,會報鍵錯誤,KeyError。如下:

鍵錯誤

也可以添加一個字典中原來沒有的鍵,如下:

添加鍵

也可以通過del來刪除字典中的某個鍵值對,或刪除整個字典。但是不能刪除字典中沒有的鍵,會報KeyError。如下:

del 用法

上面的demo中,當通過del語句刪除了dict1後,再嘗試輸出 dict1。會報NameError,名字錯誤。提示 dict1沒有定義。

python字典的鍵和值

對於字典來說,值可以是任意的python對象,可以是標準對象,也可以是自定義的對象。鍵則要求必須是一種不可變的對象。比如說數字,字符串,元組是可以作為鍵的,而列表,字典則是不行的。如下:

鍵和值的多樣性

當嘗試以一種可變對象作為字典的鍵時,會報TypeError,類型錯誤。如下:

鍵類型錯誤

python字典的函數或方法

len函數可獲取字典中鍵的個數。(嵌套的不計)

str可以將字典以字符串的形式列印。

type可獲取變量的類型。如下:

len,str 和 type

clear方法可以清空字典中的所有鍵值對。如下:

clear清空

copy可基於原字典,通過淺拷貝的方式,創建一個新的字典對象,如下:

copy拷貝

python中,對象的拷貝存在深拷貝和淺拷貝的區別。這部分內容,後面會有專門的文章聊到。這裡,可以按照以下方式簡單理解:

1. 深拷貝下,對象中嵌套的每個對象都會重新複製一份,放在一個新的內存空間中。

2. 淺拷貝下,只會對對象中的第一層內容做複製,嵌套的內容不會重新複製,而是會繼續使用原來的對象。

基於以上兩條,再對照demo,嘗試理解:dict2是通過dict1.copy()得到的。之後,做了兩次修改:

1. 修改了dict1中鍵 a 對應的內容。

2. 修改了dict1中鍵 d 對應的值中的鍵 aa 對應的內容。

為什麼修改1的結果沒有影響到dict2,而修改2的結果影響到了dict2?

fromkeys接受兩個參數,參數1為一個序列,參數2是一個對象。該方法將形成一個字典,該字典以參數1序列的每個元素作為鍵,以參數2對象作為值。當參數2不傳時,值為None。如下:

fromkeys

get方法可以返回字典中某個鍵對應的值,這種方法,比直接通過中括號 + 鍵的訪問方式好的地方在於:

1. 當嘗試一個字典中不存在的鍵時,不會報錯,而是返回None。None是python中一個特殊的對象,表示空值,類型是NoneType。

2. 可通過第二個參數傳遞一個對象作為默認值,當字典中不存在該鍵時,返回默認值。如下:

get

通過 in 可判斷某個鍵是否在字典中。如下:

in

當需要對字典內容進行遍歷時,可以使用Items或keys或values方法。items會返回一個列表,列表中每個元素是一個元組,元組中包含兩個元素,元素0和元素1分別對應字典中的一個鍵值對。keys方法會返回一個只包含字典中鍵的列表。values方法會返回一個只包含字典中值的列表。如下:

遍歷

setdefault方法可以在字典中添加一個鍵值對。它和直接通過小括號 + 鍵的方式區別如下:

1. 當要添加的鍵在字典中已經存在時,不報錯,但添加無效。

2. 可通過第二個參數傳遞一個默認值。不傳遞,則默認為None。

setdefault

當需要刪除字典中某個鍵時,可使用pop或popitem。pop會刪除指定的鍵,並返回對應的值。popitem則會刪除字典中最後一組鍵值對,並返回一個鍵值對構成的元組。如下:

pop和popitem

相關焦點

  • python之dict字典數據類型講解
    前言python中有一種非常重要的數據類型就是dict字典。字典數據類型使用頻率是很廣泛的,其實字典數據類型非常類似於Java中的Map,JavaScript中的json。本文就重點講解dict字典。概念字典不同於其他數據類型,最重要的區別在於字典數據類型是通過一個key來去獲取對應的value。字典是通過鍵值對/key-value對聯繫起來的。語法字典的每個鍵值對使用「:」冒號進行分割,多個鍵值對使用「,」逗號分割。整個字典被一對「{}」包括起來。字典中的key必須要保證唯一,但是值可以重複。
  • Python數據類型之字典dict
    # 字典是一種可變容器類型,可存儲任意類型對象# 字典以鍵值對存儲數據,key-value形式,鍵值之間使用冒號:分隔,每個鍵值中間用逗號,分隔# 字典包含在大括號,花括號{}中# python中鍵必須是不可變的,但值可取任何數據類型# 元組可以作為 dict 的 key,但列表不能作為元組的 key,dict 要求
  • Python入門教程——數據類型之字典
    Dictionary類型即字典。用 {} 表示,用來存儲鍵/值對。定義# 定義一個空字典dic = {}# 定義一個字典並初始化dict = {'name': 'python book', 'price': '$19.9', 'pages': 888}上述代碼,name、price、pages為鍵,python book、$19.9、888為值。
  • python數據類型總結——布爾
    在python中,我們經常會遇到是或否的判斷。根據是或否,來絕對後續的處理邏輯。那麼,是或否在python中,用布爾來描述,英文名為bool。python布爾python中, 可以通過type函數來獲取一個對象的類名,如下:type函數把一些常用的數據類型的對象放進去,你可能得到
  • Python 四大數據類型總結
    基本數據類型數值型Python 中的數據皆是對象,比如被熟知的 int 整型對象、float 雙精度浮點型、bool 邏輯對象,它們都是單個元素。舉兩個例子。,下面的示意圖形象的表達出字典的 「形」。strip 用於去除字符串前後的空格:In [1]: ' I love python\t\n '.strip()Out[1]: 'I love python'replace 用於字符串的替換:In [2]: 'i love python'
  • 002.Python核心數據類型
    python核心數據類型❝本系列文章是我個人學習《python學習手冊(第五版)》的學習筆記,其中大部分內容為該書的總結和個人理解,小部分內容為相關知識點的擴展。非商業用途轉載請註明作者和出處;商業用途請聯繫本人(gaoyang1019@hotmail.com)獲取許可。
  • python數據結構總結——集合
    當以字典作為參數時,會將字典中的值都添加到集合中。仍然會有去重效果。python數據類型總結——字典刪除集合中指定的元素可以用如下:找不重複python基本數據類型整理至此,我們了解了python中所有的基本數據類型。
  • python數據類型串講(下)
    在上一篇文章中討論了python標準類型中序列的兩種:列表和元祖,下面我們繼續介紹python的第二種標準類型:字典(dict)。1、字典dict顧名思義,字典就像我們日常生活中使用的新華字典,其作用在於根據索引(拼音或偏旁)快速查找到所需內容,而python中的字典也是如此,python中字典的索引稱為「鍵」(key),由python中不可變的數據類型(如字符串、數值等)構成,具有固定(不可變)、唯一(不可重複)性;python中字典的內容稱為「值」,其可以為python中的任意標準數據類型的一種或多種
  • python數據類型總結——數字和字符串
    如同人有姓名一般,當python中的數據被創建後,會在存儲介質中分配一塊區域用於存儲數據。通常,我們需要一個名字來指代這部分數據。python變量數據的名字,稱之為變量。python數據類型如果有過一些其他語言基礎的話,通常會Get到兩個概念,一個是數據類型,另一個是變量類型。數據類型就是數據本身有一個分類,數據是屬於哪一類的。
  • P022 python基礎:數據類型之字典dict01
    字典是python裡面非常重要的數據類型,它的結構類似json。它和json是可以互轉的。接下來我們學習字典dcit。
  • 小白學 Python(12):基礎數據結構(字典)(上)
    人生苦短,我選Python前文傳送門小白學 Python(1):開篇小白學 Python(2):基礎數據類型(上)小白學 Python(3):基礎數據類型(下)基礎數據結構(列表)(下)小白學 Python(11):基礎數據結構(元組)字典我先問一下,有沒用過字典的麼?
  • python數據類型總結——列表
    python用列表或元組來幫助我們。python列表一系列元素組成一個集合,可能通過索引,對每個元素進行訪問。這種數據類型統稱為序列。在python中,字符串就是一種序列。列表,也是序列的一種。可以用中括號來聲明列表。列表是可變的。
  • 如何在python中引入高性能數據類型?
    作者|skura 來源|AI開發者 python 就像一件藝術珍藏品!python 最大的優點之一是它可以廣泛地選擇模塊和包。它們將 python 的功能擴展到許多流行的領域,包括機器學習、數據科學、web 開發、前端等等。其中最好的一個優點是 python 的內置 collections 模塊。
  • python語言基本數據類型-字典(dict)
    字典是要求集合中的每個元素都對應一個值,形成鍵值對的形式,就像字典一樣。字典由鍵值對構成(key、value)的無序集合(不像字符串、列表和元祖那樣有固定的位置)。鍵(key)的數據類型一般為數字或字符串,且必須是唯一的,不能重複。值(value)可以是任意數據類型。字典使用大括號{}。(1)字典特性a.
  • Python基礎學習之常用六大數據類型
    剛開始學習一門程式語言,除了了解運行環境與語言類型之外,最基本還是從該語言的基本數據類型開始學起。a = 1b = 1.1print(type(a+b)) #<class 'float'>三、字符串字符串在任何程式語言中都是最常用的數據類型。字符串的創建很簡單,也是上面所說的三步,但是要加上單引號或者雙引號。
  • 瘋狂的Python字典
    這個子字典是從哪裡來的?當python處理我們的字典表達式時,它首先構造一個新的空字典對象; 然後按照字典表達式給出的順序賦鍵和值。我第一次看到這個字典表達式真的讓我難住了。在python文檔中進行一些探索之後,我發現python將bool作為了int類型的一個子類。
  • 用 Python 操作 JSON 類型數據詳解
    key進行排序,字典默認是無序的。指定的分隔符一般是一個元祖類型的數據,比如(',',':')。Python對象,使用的語法格式如下:import jsonjson.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)2、JSON字符串與Python 原始類型之間數據類型對應關係
  • 數據挖掘之Python基礎(一)基本數據類型與數據結構
    前言最近工作和研究涉及到數據挖掘和機器學習,出於歸納和總結知識的目的寫下這一系列的文章,這一系列文章將會包括Python的基本數據類型和數據結構,函數和面向對象相關的知識,然後會介紹數據挖掘和機器學習經常用到的Numpy,Pandas。也希望這一系列文章能夠幫助剛剛接觸Python或者數據挖掘和機器學習的人。
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。python字典python字典概念:python字典可以用來存儲任意類型對象,python字典都是由一個鍵和一個值組成的「鍵值對」,兩者之間用冒號隔開
  • python字典的學習
    目錄1、字典的簡單介紹2、字典增刪改查和其他操作3、字典的嵌套一、字典的介紹字典是python中唯一的一個映射類型.在dict中key是唯一的. 在保存的時候, 根據key來計算出一個內存地址.已知的可哈希(不可變)的數據類型: int, str, tuple, bool不可哈希(可變)的數據類型: list, dict, set語法 :{key1: value1, key2: value2....}