python中dic_python之dic {字典}(重要指數*****)

1. 什么是字典

{'name': '汪峰', 'age': 18} '鍵':'值' 別的語言鍵值對數據

鍵: 必須是可哈希(不可變的數據類型),并且是唯一的

值: 任意

可以保存任意類型的數據

字典是無序的

python3.6版本以上,默認定義了順序,python3.5以下是隨機顯示

不能進?切片?作. 它只能通過key來獲取dict中的數據

字典是可變的

2. 字典能干什么

字典可以存儲大量數據,字典比列表還要大

字典在查找值的時候很方便快速

字典能夠將數據進行關聯

有明確對應關系的時候推薦使用字典,字典一定要整明白,很重要

目前所學的字典是不能轉換的

缺點:

字典比較消耗內存 最常用的:字符串 列表 字典

3. 字典怎么用: 增、刪、改、查

3.1 增

方法一: 直接增

dic["鍵"] = "值"

例題:

dic['name'] = '汪峰'

dic['age'] = 18

print(dic)

結果:

{'name': '汪峰', 'age': 18}

方法二:setdefault() 無則添加,有則不變

先去字典查看要添加的鍵存不存在

如果字典中存在就不添加,反之添加

dic.setdefault("鍵","值")

例題:

s1 = dic.setdefault('王菲')

# 輸出結果

# {'王菲': None}

dic.setdefault('a','aaa')

print(dic)

一句話總結

dic["鍵"] = "值"

dic.setdefault("鍵","值") # 鍵不存在就添加,存在就不填加.

3.2 刪

沒有remove

方法一:pop('鍵') 通過鍵刪除,具有返回值,返回的是被刪除的值

pop("鍵")

方法二: del dic 刪除整個字典

del dic

方法三: del dic['鍵'] 刪除指定的鍵值對

del dic["鍵"]

方法四: dic.clear() 清空 刪除整個字典中的鍵值對

dic.clear()

一句話總結

pop("鍵")

del dic["鍵"]

dic.clear() 清空

3.3 改

方法一: dic["鍵"] = "值" 直接改

dic["鍵"] = "值"

例題:

dic = {'a':'b','b':'c'}

dic['b'] = '這是新值' 有則改之無則添加

方法二: update({'鍵':值,'鍵':值})

update后面括號里面的級別高,會被前面的中相同的key對應的值覆蓋

沒有的話會填加

dic.update({"a":1,"b":1})

一句話總結

dic["鍵"] = "值"

dic.update({"a":1,"b":1})

3.4 查

字典的查詢只能通過鍵獲取值,不能通過值獲取鍵

方法一: get('鍵','可以自己指定內容') 不存在返回的是None獲取值的時候可以指定返回的內容,鍵不存在的時候不報錯

例題:

dic = {"a":1}

dic["a"] += 5 # 給鍵a的值加5

dic.get("a") # 獲取a的值

print(dic)

'''

輸出結果

{'a': 6}

'''

方法二: dic["鍵"] 獲取值的時候可以指定返回的內容,鍵不存在的時候就報錯

例題:

dic = {1:2,"a":"a1"}

print(dic["c"])

'''

輸出結果

報錯,沒有這個鍵

'''

方法三: dic.setdefault("鍵")

例題:

dic = {"a":1}

b = dic.setdefault('a')

print(b)

'''

輸出結果

1

'''

一句話總結

dic["鍵"]

get('鍵','可以自己指定內容')

dic.setdefault("鍵")

3.5 其他的方法

for循環-獲取字典的鍵的兩種方法

方法一:

for k in dic:

print(k,dic[k]) #這里需要在打印的時候獲取k的值

例題:

dic = {1:2,"a":"a1"}

for i in dic: # for循環字典的時候打印的是字典的鍵

print(i,dic[i])

'''

輸出結果

1

a

'''

方法二:

for k in dic.keys():

print(k) # 這里在打印的時候不要指定

例題:

dic = {1:2,"a":"a1"}

for v in dic.keys():

print(v)

'''

輸出結果

1

a

'''

三種模式:

dic.keys() -- 返回的是一個高仿列表 -- 沒有索引

dic.values() -- 返回的是一個高仿列表 -- 沒有索引

dic.items() -- 返回的是一個高仿列表,列表里存放的是元組類型元組第一個是鍵,第二個元素是值

3.6 解構

方法:

a,b = b,a --- 交換的是指向

a,b = 1,2

a,b = (45,6)

a,b = [1,4]

a,b = {"s":1,"a":1} # 字典拆包后的結果是鍵賦值給了a和b的變量

例題:

a = 1

b = 2

print("is a",id(a))

print("is b",id(b))

a,b = b,a

print("is a",id(a))

print("is b",id(b))

a,_,c = "你好啊"

print(a,c)

# 結果:你啊

a,b = ("1","2")

print(a,b)

# 結果:1,2

a,b = ["4","5"]

print(a,b)

# 結果:4,5

a,b = {"a":1,"b":2,}

print(a,b)

# 結果a b

3.7 enumerate() 枚舉

給你要迭代對象,加一個序號 默認是從0開始,可以自己指定

例題:

li = [1,2,3,4,54]

for i,k in enumerate(li): # enumerate 第二個參數默認不寫就是0 -- 枚舉

print(i,k)

'''

輸出結果

0 1

1 2

2 3

3 4

4 54

'''

練習題:

題目: 有字典dic = {"電腦":15000,"手機":8000,"耳機":4000,"老婆":1111},現需求是顯示如下列表:

1 電腦

2 手機

3 耳機

4 老婆

方法一:

dic = {"電腦":15000,"手機":8000,"耳機":4000,"老婆":1111}

count = 1

for i in dic:

print(count,i)

count += 1

方法二:

for k,v in dic.enumerate(dic): # enumerate默認添加的序號從0開始,正好是索引的那個值

print(k+1,v)

'''

輸出結果

1 電腦

2 手機

3 耳機

4 老婆

'''

3.8 字典的嵌套:

查找的字典的嵌套時,按照鍵去一層一層的查找

例題:

dic = {

101:{1:["周杰倫","林俊杰"],2:{"汪峰":["國際章",{"前妻1":["熊大","熊二"]},

{"前妻2":["葫蘆娃","木吒"]}]}},

102:{1:["李小龍","吳京","李連杰"],2:{"謝霆鋒":["張柏芝","王菲"]},

3:["alex","wusir","大象","奇奇"]},

103:{1:["郭美美","干爹"],2:{"王寶強":{"馬蓉":"宋哲"}}},

201:{1:["凹凸曼","皮卡丘"],2:{"朱懟懟":{"楊冪":"劉愷威"}}}

}

1. 找:葫蘆娃

print(dic[101][2]["汪峰"][2]["前妻2"][0])

2. 找:大象

print(dic[102][3][2])

3. 找:宋哲

print(dic[103][2]["王寶強"]["馬蓉"])

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532060.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532060.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532060.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python裝飾器帶參數函數二階導數公式_一文搞定Python裝飾器,看完面試不再慌

本文始發于個人公眾號:TechFlow,原創不易,求個關注今天是Python專題的第12篇文章,我們來看看Python裝飾器。一段囧事差不多五年前面試的時候,我就領教過它的重要性。那時候我Python剛剛初學乍練,看完了廖雪…

centos7源碼安裝mysql報錯_CentOS7 下源碼安裝MySQL數據庫 8.0.11

本文主要向大家介紹了CentOS7 下源碼安裝MySQL數據庫 8.0.11,通過具體的內容向大家展現,希望對大家學習MySQL數據庫有所幫助。CentOS7 下源碼安裝MySQL 8.0.11系統環境:CentOS7, 內核:Linux 3.10.0-862.el7.x86_64如果…

python全排列問題_Python基于回溯法子集樹模板解決全排列問題示例

本文實例講述了Python基于回溯法子集樹模板解決全排列問題。分享給大家供大家參考,具體如下:問題實現 a, b, c, d 四個元素的全排列。分析這個問題可以直接套用排列樹模板。不過本文使用子集樹模板。分析如下:一個解x就是n個元素的一種排列&a…

file js new 傳到后臺_js 圖片上傳傳給后臺的3種格式

$("#imgfile").change(function () {var formData new FormData();$.each($(#imgfile)[0].files, function (i, file) {formData.set(idcard, file); //idcard 字段 根據自己后端接口定});//processData: false, contentType: false,多用來處理異步上傳二進制文件。…

usbserialcontroller驅動安裝不了_win10-有NVIDIA獨顯提示未安裝控制面板的離線安裝方式...

最近越來越多的用戶反映NVIDIA顯卡驅動設置不了啦,找不到NVIDIA顯卡的控制面板。 也不知道NVIDIA在什么版本開始驅動安裝包就不自帶NVIDIA顯卡控制面板了。 全新安裝的顯卡驅動就沒有控制面板;或者Windows 10自帶更新了顯卡新版驅動后導致沒有。 每次帶N…

mysql 多實例 獨立配置文件_三、安裝配置多實例MYSQL5.6-多獨立配置文件方法

三、安裝配置多實例MYSQL5.6-多獨立配置文件方法1、準備工作檢查操作系統版本、內核版本、selinux是否關閉、防火墻策略、IP地址、主機名配置、host表配置、yum配置上傳cmake、mysql5.6軟件包具體步驟參考源碼安裝mysql-單實例配置文檔2、安裝cmake軟件2.1 安裝編譯軟件環境[[e…

python做什么模型_主題模型初學者指南[Python]

引言近年來涌現出越來越多的非結構化數據,我們很難直接利用傳統的分析方法從這些數據中獲得信息。但是新技術的出現使得我們可以從這些輕易地解析非結構化數據,并提取出重要信息。主題模型是處理非結構化數據的一種常用方法,從名字中就可以看…

python實現隊列_Python學習教程:用隊列實現棧

接著上一期跟大家說的用棧實現隊列,這期的Python學習教程跟大家講用隊列實現棧題目:使用隊列實現棧的下列操作:push(x) – 元素 x 入棧pop() – 移除棧頂元素top() – 獲取棧頂元素empty() – 返回棧是否為空Implement the following operati…

vue 點擊li 中的img 怎么不冒泡_Vue全解

一.Vue實例內存圖:1.把Vue的實例命名為vm,vm對象封裝了對視圖的所有操作包括數據讀寫、事件綁定、DOM更新2.vm的構造函數是Vue,按照ES6的說法vm所屬的類是Vue3.options是new Vue的參數一般稱為選項或構造選項1.options里面有什么英文文檔搜op…

python布局管理_Python基礎=== Tkinter Grid布局管理器詳解

本文轉自:https://www.cnblogs.com/ruo-li-suo-yi/p/7425307.html 箬笠蓑衣Grid(網格)布局管理器會將控件放置到一個二維的表格里。主控件被分割成一系列的行和列,表格中的每個單元(cell)都可以放置一個控件。注意:不要試圖在一個主…

python面向對象類_python面向對象-類和對象

一. 類的定義class類名():代碼#定義類classWasher():defwash(self):print("洗衣服")注意:類名要滿足標識符命名規則,同時遵循大駝峰命名習慣。二. 創建對象對象名 類名()#創建對象w Washer()#調用方法w.wash() #洗衣服三. selfself指的是調用…

vant部署_vant ui rem配置流程

參考地址 https://www.cnblogs.com/WQLong/p/7798822.html1.下載lib-flexible使用的是vue-cliwebpack,通過npm來安裝的npm i lib-flexible --save2.引入lib-flexible在main.js中引入lib-flexibleimport ‘lib-flexible/flexible‘3.設置meta標簽通過meta標簽&#…

terminal services 找不到_電腦局域網中查看不到其他計算機或無法連接的解決辦法...

在辦公環境中,電腦經常需要打開網絡,進行一些文件共享的操作,但是有時會出現很多無法共享的情況,之前有一篇文章講過解決辦法,今天再來將一下具體無法共享的錯誤提示和相對應的處理方法,主要有以下幾種情況…

如何避免mysql回表查詢_mysql如何避免回表查詢

《迅猛定位低效SQL?》留了一個尾巴:select id,name where name‘shenjian‘select id,name,sexwhere name‘shenjian‘多查詢了一個屬性,為何檢索過程完全不同?什么是回表查詢?什么是索引覆蓋?如何實現索引…

python爬蟲開發數據庫設計入門經典_Python3實現的爬蟲爬取數據并存入mysql數據庫操作示例...

本文實例講述了Python3實現的爬蟲爬取數據并存入mysql數據庫操作。分享給大家供大家參考,具體如下:爬一個電腦客戶端的訂單。羅總推薦,抓包工具用的是HttpAnalyzerStdV7,與chrome自帶的F12類似。客戶端有接單大廳,羅列…

python中multiply函數_python中numpy庫內multiply()、dot()和 * 三種乘法運算的區別小計...

首先,導入函數包:import numpy as np1.np.multiply()函數:數組:(點對點)對應位置元素相乘矩陣:對應位置元素相乘示例:A np.array([[1,2],[3,4]])B np.array([[1,3],[2,4]])A_mat np.mat(A)B_mat np.mat(B)A_B_mult…

安裝python3.6.1_如何安裝python3.6.1/

如何在win7下安裝Python及配置1、首先,從搜索python官載適合自己電腦python版本。2標右擊桌面“計算機”擇打開菜單欄中的性”。3、WindowsXP時,在新彈出的屬性窗口,選擇“高級”->“環境變量”。Windows7是,在新彈出的屬性窗口…

編程入門python java和c語言_學習編程適不適合從Python入門?哪種語言更適合入門?...

本文對比了C語言和Python語言,分析它們作為編程入門語言各自的利弊,并給出了我推薦的編程學習道路。我本身已經入門了Python腳本語言,在進階C語言和JAVA語言后,Python重學就輕松很多,幾個小時就拾起了忘記的語法&#…

mysql 備份 一張表_mysql 備份表的一個方法

#--- start# 新建表create table sp2_match_comment_tmp like sp2_match_comment; # 這種方式 外鍵索引,觸發器不會在新表中有,要自己添加LOCK TABLES sp2_match_comment write, sp2_match_comment AS smc2 read, sp2_match_comment_tmp write;# 導出最新…

springmvc的工作原理_SpringMVC工作原理

1 簡介SpringMVC框架是以請求為驅動,圍繞Servlet設計,將請求發給控制器,然后通過模型對象,分派器來展示請求結果視圖。其中核心類是DispatcherServlet,它是一個Servlet,頂層是實現的Servlet接口。2 運行原理…