python.day05

一 字典?

定義:dict, 以{},表示.每一項用逗號隔開,內部元素用key:value的形式來保存數據.例如

{"jj":"林俊杰","jay':周杰倫"}

特點:查詢效率非常高,通過key來查找元素

內部使用key來計算一個內存地址(暫時),hash算法,key必須不可變的數據類型(key必須是可hash的數據類型)可hash就是不可變

已知的可hash數據:int str tuple bool

不可hash的類型:list dist set

語法 dict={key1:value1,key2;value2....}

注意;key必須是不可hash的(不可變的),value沒有要求(可以保存任意的數據)

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

二 新增

dic={}
dic["徐崢"]="人在囧途" #如果dict中沒沒有key,就會新增一個key:value的組合進去
dic["黃渤"]="瘋狂的石頭"
dic["王寶強"]="天下無賊"
dic["王寶強"]="士兵突擊" #如果key已經存在.那么會替換掉原來的value
dic.setdefault("黃丘生")
dic.setdefault("黃丘生","無間道")# 如果key存在了 不會執行新增
print(dic)

三 刪除

dic = {"黃日華": "天龍八部", "呂頌賢": "笑傲江湖", "蘇有朋": "倚天屠記"}
# #dic.pop("呂頌賢") #指定刪除
# dic.popitem()#隨即刪除
# dic.clear() # 清空字典
# print(dic)

四 修改

dic = {"劉能": "王小利", "趙四": "劉曉光", "王木生": "范偉", "謝大腳": "于月仙", "李大國": "小鬼"}
dic['王木生'] = "劉偉"
# print(dic)?替換
dic2 = {"劉能": "大陽哥", "趙四": "github", "王木生": "汪峰", "謝大腳": "馮提莫", "王大拿": "金老板"}
dic.update(dic2) #相同的換掉,不一樣的加上去
print(dic)

五 查詢

 dic={"劉能":"大陽哥","趙四":"github","王木生":"汪峰"}
# #1.最直觀,直接用key
# print(dic["劉能"])#當這個key不存在時會報錯
# # # 2.get
# print(dic.get("謝大腳",))##沒有key返回none
# # #3.
# #setdefault(先新增 看看有沒有key,如果有就過,沒有執行新增 @根據key把值返回
dic={}
dic["蓋倫"]="德瑪西亞之力"
value = dic.setdefault("feiaona", "無雙劍姬")  # 新增
value2 = dic.setdefault("蓋倫", "劉偉")  # 由于已經存在了key。 所以新增不執行。 直接查詢結果
value3 = dic.setdefault("薇恩", "")
print(dic)

相關操作

主要是遍歷字典

=相關操作
dic = {"汪峰": "大陸音樂半壁江山", "周杰倫": "亞洲音樂天王", "羅志祥": "亞洲舞王"}
#print(dic.values()) #得到 dict_keys(['汪峰', '周杰倫', '羅志祥']) 像列表但不是列表 可以當列表來看(來用)#通過這種方法對字典的遍歷一個個都拿出來
#第一種方法:
# for key in dic.keys():
#     print(key) # 得到 key
#     print(dic[key]) #得到value     daic[key]表示value#上邊是對key的遍歷
#對value的遍歷# print(dic.values())
# for value in dic.values():
#    print(value)# 只能拿出value不能拿出key 也就這樣了#既然拿到key,拿到value
#能不能一對一對拿#亦可以遍歷字典
# print(dic.items())  #items每一項 ; 拿到value和拿出key
# for item in dic.items():
#     print(item) #拿到元組類型的
#     print(item[0],item[1]) #拿到key和value
#
# a,b=10,20 #結構\解包 元組列表都有
# print(a)
# print(b)#這個也可以遍歷字典
#
# print(dic.items())  # 拿到的是key和value
for k, v in dic.items(): # 當需要遍歷字典. 在操作中涉及到key和value的時候.print(k) # 元組print(v)# 字典本身是一個可迭代對象,可以直接進行for循環
for el in dic:  # 直接拿到keyprint(el)print(dic[el])

六 字典的嵌套

給個例子

wf = {"name": "汪峰","age": 48,"成名曲": "春天里","wife": {"name": "章子怡","age": 39,"工作": "演員"},"children":[{"num": "001", "name": "汪一", "hobby": "唱歌"},{"num": "002", "name": "汪二", "hobby": "演戲"} # wf['children'][1]['name']]
}# wf['wife']['age'] = wf['wife']['age'] + 10
# print(wf)

?

轉載于:https://www.cnblogs.com/systemsystem/p/9606067.html

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

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

相關文章

滯后分析rstudio_使用RStudio進行A / B測試分析

滯后分析rstudioThe purpose of this article is to provide some guide on how to conduct analysis of a sample scenario A/B test results using R, evaluate the results and draw conclusions based on the analysis.本文的目的是提供一些指南,說明如何使用R對…

Linux程序實現彈框,jQuery實現彈出框 效果絕對美觀

使用到JQeury寫的幾個比較好的Popup DialogBox,覺得不錯。和大家分享下。使用它們結合.net可以實現很好的效果。1.jqpopup:是個可以拖拽,縮放并可以在它上面顯示html頁面上任何一個控件組合的控件。可以和后面的主頁面通信。使用方法:先調用這幾個js文件,可以自提供的下載地址下…

Interesting visualization tools for profiling.

Interesting visualization tools for profiling. http://dtrace.org/blogs/brendan/2012/03/17/linux-kernel-performance-flame-graphs/ http://dtrace.org/blogs/brendan/2013/07/01/detecting-outliers/

MySQL的事務-原子性

MySQL的事務處理具有ACID的特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。 1. 原子性指的是事務中所有操作都是原子性的,要…

codeforces CF438D The Child and Sequence 線段樹

$ \Rightarrow $ 戳我進CF原題 D. The Child and Sequencetime limit per test: 4 secondsmemory limit per test: 256 megabytesinput: standard inputoutput: standard outputAt the childrens day, the child came to Pickss house, and messed his house up. Picks was ang…

大型網站架構演變

今天我們來談談一個網站一般是如何一步步來構建起系統架構的,雖然我們希望網站一開始就能有一個很好的架構,但馬克思告訴我們事物是在發展中不斷前進的,網站架構也是隨著業務的擴大、用戶的需求不斷完善的,下面是一個網站架構逐步…

linux的磁盤磁頭瓷片作用,Linux 磁盤管理

硬盤物理結構以下三張圖片都是磁盤的實物圖,一個磁盤是由多塊堆放的瓷片組成的,所以磁頭的結構也是堆疊的,他要對每一塊瓷片進行讀取,磁頭是可以在不同磁道(在瓷片的表現為不同直徑的同心圓,磁道間是有間隔的)之間移動…

多層插件開發框架

先來幾張效果圖: 1.基于DATASNAP構建的中間件,中間件已經經過實際項目的檢驗,單臺中間件可支持幾千客戶端,中間件可集群 2.中間件支持同時連接ACCESS\SQL SERVER\MYSQL\ORACLE。。。多種數據庫系統 3.中間件同時支持TCP/IP,HTTP&a…

unity3d 可視化編程_R編程系列:R中的3D可視化

unity3d 可視化編程In the last blog, we have learned how to create “Dynamic Maps Using ggplot2“. In this article, we will explore more into the 3D visualization in R programming language by using the plot3d package.在上一個博客中,我們學習了如何…

linux無法設置變量,linux – crontab在作業之前無法設置變量

我的crontab看起來像:rootslack13x64:~# crontab -l -u dnd# some variablesSHELL/bin/bashPATH/bin:/usr/bin:/usr/local/bin:/home/dnd/binMAILTOroot# Actual jobs40 20 * * * /home/dnd/cron_jobs/some_job.sh55 23 * * Fri /home/dnd/cron_jobs/other_job.py作…

詳談P(查準率),R(查全率),F1值

怎么來的? 我們平時用的精度accuracy,也就是整體的正確率 acc predict_right_num / predict_num 這個雖然常用,但不能滿足所有任務的需求。比如,因為香蕉太多了,也不能撥開人工的一個一個的看它的好壞(我愛吃啊&#…

網站系統分布式架構

寫這篇文章之前,需要有些論點和論據,以表明網絡系統在極端情況下的情況,先來看看世界上排名靠前的網站。 1、 FaceBook 2、 Google 從這兩個站可以看出,當下比較極限的日均訪問量在2~3億,PV值…

linux文件系統學習,linux文件系統之tmpfs學習

關于文件系統,我們在下面的博文中已有做簡單的介紹,外鏈網址已屏蔽本篇博文我們學習的是文件系統中的tmpfs。tmpfs是一種偽文件系統,它是從DRAM中創建出來的,相比于磁盤而言,其具有更高的訪問效率。如何創建一個tmpfs&…

python 數據科學 包_什么時候應該使用哪個Python數據科學軟件包?

python 數據科學 包Python is the most popular language for data science. Unfortunately, it can be tricky to know which of the many data science libraries to use when. ??Python是數據科學中最流行的語言。 不幸的是,要知道何時使用許多數據科學庫中的哪…

Go語言開發環境配置

http://blog.csdn.net/hil2000/article/details/41261267/ 一.我為什么要學習go語言 當今已經是移動和云計算時代,Go出現在了工業向云計算轉型的時刻,簡單、高效、內 置并發原語和現代的標準庫讓Go語言尤其適合云端軟件開發(畢竟它就是為此而…

微軟研發致勝策略

第一章奠定基礎 1.千萬不要把程序設計師的時間浪費在改善產品以外的工作上。 2.保護程序設計師不受任何阻礙和干擾。 3.永遠記得自己真正的目標,然后讓團隊用最有將效又最愉快的方法把它完成。 4.理清詳細的項目目…

熊貓tv新功能介紹_您應該知道的4種熊貓繪圖功能

熊貓tv新功能介紹Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e.g. Data wrangling, Data cleaning, and Data manipulation. Although, there is a method that rarely talks about regarding Pandas package and that is the …

CPP_封裝_繼承_多態

類的三方法:封裝,繼承,多態。封裝:使用一整套方法去創建一個新的類型,這叫類的封裝。繼承:從一個現有的類型基礎上,稍作改動,得到一個新的類型的方法,叫類的繼承。多態&a…

win與linux淵源,微軟與Linux從對立走向合作,WSL是如何誕生的

原標題:微軟與Linux從對立走向合作,WSL是如何誕生的正文Windows Subsystem for Linux(WSL)的開發,讓微軟從Linux的對立面走向合作,并且不斷加大對開源社區的支持力度。而作為微軟歷史上的重要轉折點,外界對WSL技術在Pr…

文件編輯器 vi

1、關于文本編輯器; 文本編輯器有很多,比如圖形模式的gedit、kwrite、OpenOffice ... ... ,文本模式下的編輯器有vi、vim(vi的增強版本)和nano ... ... vi和vim是我們在Linux中最常用的編輯器。我們有必要介紹一下vi&a…