3結構化數據
字典(查找表)、集合、元組、列表
3.1字典
是有兩列任意多行的表,第一列存儲一個鍵,第二列存儲一個值。
它存儲鍵/值對,每個唯一的鍵有一個唯一與之關聯的值。(類似於映射、表)
它不會維持插入時的順序。
Python的字典實現為一個大小可變的散列表,它針對大量特殊情況進行了充分的優化。因此,字典可以非常快速的完成查找。
For循環可以用來迭代處理一個字典。每次迭代時,鍵會賦給循環變量,用來訪問數據值。
''' 字典的存儲結構: 各個鍵與相應的值用:連接; 每個值與下一個值之間用逗號連接; 開始結束用大括號{}包圍 ''' person3={'Name':'ting', 'Genger':'male', 'Occupation':'Researcher', 'Home Planet':'shaanxi province'} #在查看person3時,不是按照定義的順序,字典中的數據是無序的。 #使用鍵來訪問字典中的數據。 person3['Home Planet'] #會顯示shaanxi province Person3[‘Age’]=33 #向字典增加一行數據,將一個對象賦值一個新鍵。
回顧vowels3.py程序:
它返回的是一個單詞中的元音:
而現在需要一個新的功能是列出任意一個單詞中的元音以及它出現的頻度。
下面研究使用字典來改進這個元音程序:
1.如何把這個字典初始化,使其中的值都為0?
2.如何遞增字典中的值?
‘e’對應的數字已經變成2
3.如何迭代處理字典?
用for處理字典時,解釋器只處理字典的鍵,而不處理值。
4.如何指定輸出時的順序?
使用sorted(found) #sorted是一個內置函數,可按照字母順序組織輸出。
用items迭代處理字典:
執行結果:
使用setdefault:為了縮短代碼,減少初始化的語句,先判斷鍵的存在並初始化。
鍵必須初始化!!!
只打印單詞中出現的元音。這樣不會輸出無意義的結果。
指令:
setdefault()訪問一個鍵之前需要確保它的存在
對於使用 if 'pear' not in fruits:
fruits['pear']=0 來初始化相比,setdefault更簡單。
items()迭代處理字典。
sorted()排序。
3.2集合(set)
集合的查找速度快於列表,不允許有重復值。用’{ }’包圍,對象之間用’,’分隔,
1合並集合:union
Union將一個集合與另一個集合合並,再把合並結果賦給一個新變量u,
u集合由兩個集合中所有唯一的對象組成。
使用SORTED LIST函數輸出一個有序的由唯一字母組成的列表u_list。
2找到非交集元素:difference
difference函數將vowels中的對象和Word中的對象進行比較,然后返回一個新的集合(d),是包含在vowels中但不在Word中的對象。
3找到交集元素:intersection
i集合由即在vowels又在set(word)中的所有對象組成。
簡化vowels2程序:
3.3元組(tuple)
元組用()定義列表是【】,
一旦創建和填充數據,元組就不可變。
注意只有一個對象的元組
定義時必須在()中加上一個逗號,否則就被當作為字符串類型
此內容之前是1快速入門和2列表數據,鏈接已經在后面了,歡迎一起交流學習!0(≧▽≦)0:
https://www.cnblogs.com/sebastiane-root/p/9175575.html
下期4函數與模塊:https://www.cnblogs.com/sebastiane-root/p/9343461.html 相信這個你看了一定有新的體會
這個編輯器(黑色背景那個)很漂亮,是嗎?
在官網上可以下載sublime text3 然后找個破解版,不過在使用Python交互的函數如input時需要添加一個包,詳細的步驟見鏈接: