基本數據類型(dict)

目錄:

  1.字典的簡單介紹

  2.字典增刪改查和其他操作

  3.字典的嵌套

一.字典的簡單介紹

  字典(dict)是python中唯一的一個映射類型,他是以{}括起來的鍵值對組成,在dict中key是唯一的,在保存的時候,根據key類計算出一個地址然后將key-value保存在這個地址中這種算法被稱作hash算法,所以,切記,在dict中存儲的key-value的key必須是可hash的,那么可哈希就意味著不可變,這個是為了能準確的聚酸內存地址而規定

已知的可哈希(不可變)的數據類型:int,str,tuple,bool

不可哈希(可變)的數據類型:list,dict,set

語法:

  {key1:value1,key2:value2......}
注意:key必須是不可變(可哈希)的,value沒有要求,可以保存任意數據類型的數據

# 合法 
dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帥 哥', '美?女'], (1, 2, 3): '麻花藤'} 
print(dic[123]) 
print(dic[True]) 
print(dic['id']) 
print(dic['stu']) 
print(dic[(1, 2, 3)]) # 不合法 # 
dic = {[1, 2, 3]: '周杰倫'}   # list是可變的. 不能作為key 
# dic = {{1: 2}: "哈哈哈"}     
# dict是可變的. 不不能作為key 
dic = {{1, 2, 3}: '呵呵呵'}    # set是可變的, 不能作為key

dict保存的數據不是按照我們添加進去的順序保存的,是按照hash表的順序保存的,而hash表不是連續的,所以不能進行切片工作,他只能key來獲取dict中的數據

1.增加

dic = {} 
dic['name'] = '周潤發'     # 如果dict中沒有出現這個key, 就會新增一個key-value的組 合進dict 
dic['age'] = 18 
print(dic) # 如果dict中沒有出現過這個key-value. 可以通過setdefault設置默認值 
dic.setdefault('李嘉誠')   # 也可以往里面設置值. 
dic.setdefault("李嘉誠", "房地產")  # 如果dict中已經存在了. 那么setdefault將不會 起作用 
print(dic)

2.刪除

ret = dic.pop("jay") 
print(ret) del dic["jay"] 
print(dic) # 隨機刪除. 
ret = dic.popitem() # 清空字典中的所有內容 
dic.clear()

3.修改

dic = {"id": 123, "name": 'sylar', "age": 18} 
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"} 
dic.update(dic1)    # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存 在key, 則新增. 
print(dic) 
print(dic1)

4.查詢

查詢一般用key來查找具體的數據

print(dic['name']) # print(dic['sylar'])     # 報錯 print(dic.get("ok"))print(dic.get("sylar"))      # None print(dic.get("sylar", "?牛B"))   # 牛B

5.其他相關操作

dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科比"} 
print(dic.keys())   # dict_keys(['id', 'name', 'age', 'ok']) 不用管它是什么.當 成list來用就行 
for key in dic.keys():print(key) print(dic.values())     # dict_values([123, 'sylar', 18, '科?比']) 一樣. 也當 list來? for value in dic.values():print(value) 
print(dic.items())  # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科?比')]) 這個東西也是list. 只不過list中裝的是tuple 
for key, value in dic.items():  # ?? 這個是解構    print(key, value) # 解構 
a, b = 1, 2 
print(a, b) (c, d) = 3, 4 
print(c, d) e, f = [1, 2, 3]    # 解構的時候注意數量必須匹配 
print(e, f)

三.字典的嵌套

# 字典的嵌套 
dic1 = {"name": "汪峰",    "age": 18,   "wife": {"name": '章?子怡',"age": 28},"children": ['第?個毛孩子', '第二個毛孩子'],"desc": '峰哥不會告我吧. 沒關系. 我想上頭條的'} 
print(dic1.get("wife").get("name"))print(dic1.get("children")) print(dic1.get("children")[1])

練習:

dic1 = {'name':['alex',2,3,5],'job':'teacher','oldboy':{'alex':['python1','python2',100]}} 
1,將name對應的列列表追加?一個元素’wusir’。 
2,將name對應的列列表中的alex?首字?母?大寫。 
3,oldboy對應的字典加?一個鍵值對’?老老男孩’,’linux’。
4,將oldboy對應的字典中的alex對應的列列表中的python2刪除

?

轉載于:https://www.cnblogs.com/LLBFWH/p/9890589.html

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

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

相關文章

自學成才翁_僅因為您是自學成才,并不意味著您必須獨自學習。

自學成才翁by Piotr Bakker皮特巴克(Piotr Bakker) 僅因為您是自學成才,并不意味著您必須獨自學習。 (Just because you’re self-taught doesn’t mean you have to learn alone.) I am a self-taught designer with no formal training. No art school, no priva…

java 近似值 循環次數,java題求解

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓public class PAI{public static void main(String[] args){int n 700;//Hello World! pai 3.1401640828900845(n 700)System.out.println("Hello World! pai " getPAI(n));//Hello World! pai 3.1430191863875865…

jq匹配偶數行_jquery怎么實現奇偶行不同背景顏色?

做表格的時候,經常要讓奇偶行顯示不同背景色,一來使表格顯得更美觀,二來使同行數據查找更快捷方便。通常我們是怎么實現的呢?就是在每個tr標簽上加css樣式。代碼如下所示:.odd {background-color:yellow;}.even {backg…

2016/4/19 ①單個文件上傳 ②上傳圖片后 預覽圖片

1&#xff0c;f1.php <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title> </head> <body> <!-- 作業:在網上找上傳圖片預覽的代碼 上傳服務器 再預覽--> <fo…

Android項目里集成Cordova詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一 安裝nodejs二 cmd創建Android項目三 導入工程 運行一下四 調用插件五 Android studio環境下將CordovaLib作為依賴導入六 自定義插件七 java類中的一些問題八 在CordovaActivity中添加原生View組件 九 在Fragment里使用…

facebook移動端框架_2016年所有頂級移動應用均歸Google或Facebook所有

facebook移動端框架Today Nielsen released their report about the most widely used mobile apps in 2016. The top 8 apps were all owned by just two corporations: Google and Facebook.今天&#xff0c;尼爾森發布了有關2016年使用最廣泛的移動應用程序的報告。排名前8的…

php 判斷瀏覽器是ie,js判斷是否是ie瀏覽器

怎么去看瀏覽器的內核等信息 ---- js的全局對象window子屬性navigator.userAgent&#xff0c;這個屬性是包含了瀏覽器信息的相關信息&#xff0c;包括我們需要的瀏覽器內核navigator.userAgent這個值取出來是個字符串&#xff0c;可以通過string的 indexOf方法或者正則匹配來驗…

【JAVA基礎】一:聊聊筆試常見到的 “==、equal” 比較是否相等的內在差別

開始本文之前&#xff0c;先讓我們記住一個口訣&#xff08;這個口訣只針對基礎的類比如String、Integer等&#xff0c;如果是自定義的類&#xff0c;需要看equal的具體實現&#xff09;&#xff1a;equal比較其值&#xff0c; 比較地址 這兩天在走查代碼的時候發現一個童鞋&am…

postgres 退出_postgresql – 如何修復Postgres以便在突然關閉后啟動它?

由于突然斷電,在我的本地機器上運行的PostGres服務器突然關閉.重新啟動后,我嘗試重新啟動postgres,我收到此錯誤&#xff1a;$pg_ctl -D /usr/local / pgsql / data restartpg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not existIs server runnin…

php生成appid,PHP生成騰訊云COS簽名

目標使用 PHP 創建 COS 接口所需要的請求簽名步驟按照官方示例(也許是我笨&#xff0c;我怎么讀都覺得官方文檔結構費勁&#xff0c;示例細節互相不挨著&#xff0c;容易引起歧義)&#xff0c;請求簽名應用在需要身份校驗的場景&#xff0c;即非公有讀權限時。否則在請求API接口…

es6作用域

作用域 一個需要注意的地方是&#xff0c;如果參數默認值是一個變量&#xff0c;則該變量所處的作用域&#xff0c;與其他變量的作用域規則是一樣的&#xff0c;即先是當前函數的作用域&#xff0c;然后才是全局作用域。 var x 1;function f(x, y x) {console.log(y); }f(2) …

java 有參數的構造函數如何注入_Spring5參考指南:依賴注入

依賴注入依賴注入就是在Spring創建Bean的時候&#xff0c;去實例化該Bean構造函數所需的參數&#xff0c;或者通過Setter方法去設置該Bean的屬性。Spring的依賴注入有兩種基于構造函數的依賴注入和基于setter的依賴注入。基于構造函數的依賴注入構造函數的注入是通過構造函數的…

深度學習去燥學習編碼_我們問了15,000個人,他們是誰,以及他們如何學習編碼

深度學習去燥學習編碼More than 15,000 people responded to the 2016 New Coder Survey, granting researchers an unprecedented glimpse into how adults are learning to code.超過15,000人對2016年新編碼器調查做出了回應&#xff0c;使研究人員對成年人如何學習編碼有了前…

CentOS 7 vi編輯命令

用vi打開一個yum文件 vi /usr/bin/yum 按 i 鍵后 進入insert模式&#xff0c;進入insert模式后才能進行修改 修改完成后 按esc鍵進入command模式&#xff0c; 然后:wq 保存文件并退出vi&#xff08;注意先冒號&#xff09; 保存命令 按ESC鍵 跳到命令模式&#xff0c;然后&…

C#學習筆記四: C#3.0自動屬性匿名屬性及擴展方法

前言 這一章算是看這本書最大的收獲了, Lambda表達式讓人用著屢試不爽, C#3.0可謂顛覆了我們的代碼編寫風格. 因為Lambda所需篇幅挺大, 所以先總結C#3.0智能編譯器給我們帶來的諸多好處, 下一遍會單獨介紹Lambda表達式. 這篇主要包括的內容有: 自動屬性,隱式類型,對象集合初始化…

array keys php,php array_keys與array_search的簡單使用

函數說明array_keys():返回數組中所有的鍵名。array_search():在數組中搜索給定的值&#xff0c;如果成功則返回相應的鍵名。//根據一個key返回關聯數組中的另一個key,并且不使用foreach// function array_key_relative(array $array, string $current_key, int $offset)functi…

RESTful服務的第三部分:HATEOAS和Richardson成熟度模型

by Sanchit Gera通過Sanchit Gera RESTful服務的第三部分&#xff1a;HATEOAS和Richardson成熟度模型 (RESTful Services Part III : HATEOAS and The Richardson Maturity Model) In Part I of this series, you learned the very basics of HTTP. We went over common HTTP …

mongdb集群3.4 shard 模式

從圖中可以看到有四個組件&#xff1a;mongos、config server、shard、replica set。mongos&#xff1a;數據庫集群請求的入口&#xff0c;所有的請求都通過mongos進行協調&#xff0c;不需要在應用程序添加一個路由選擇器&#xff0c;mongos自己就是一個請求分發中心&#xff…

我想變得富有的10個理由

1.我想和娘家人住得近一些&#xff0c;可以經常見面、聊天、逛街、吃飯。我們需要彼此的時候&#xff0c;可以馬上趕到。 2.我想在家人病痛的時候&#xff0c;能得到最好的救治。 3.我想住在干凈寬敞的大房子里&#xff0c;不要和長輩住^_^ 4.我希望不用我動手&#xff0c;家里…