1 ##字典 2 ''' 3 字典是一系列鍵 — 值對,每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值,與鍵相關聯的值可以是數字、字串、串列乃至字典, 4 事實上,可將任何Python物件用作字典中的值, 5 ''' 6 ##初始化book字典 7 book={'類別':'教育書籍','書名':'python從入門到實踐'} 8 print(book) 9 print(book['類別']) 10 print(book['書名']) 11 ##訪問字典的值 12 book_name=book['書名'] 13 print(book_name) 14 ##添加鍵值對(字典是動態結構,可隨時添加鍵值對,可依次指定字典名、用方括號括起的鍵和相關聯的值) 15 book['數量']=20 16 book['作者']='Eric Matthes' 17 print(book) 18 ##創建空字典,并添加鍵值對 19 phone={} 20 phone['類別']='智能機' 21 phone['名稱']='華為' 22 print(phone) 23 ##修改字典中的值 24 phone['名稱']='蘋果' 25 print(phone) 26 phone={'名稱':'小米',}##對字典重新賦值的操作 27 print(phone) 28 ##案例: 29 ''' 30 對一個能夠以不同速度移動的外星人的位置進行跟蹤,為此,我們 31 將存盤該外星人的當前速度,并據此確定該外星人將向右移動多遠: 32 ''' 33 alien={'x_position':0,'y_position':25,'speed':'medium'} 34 print("orignal x_position:"+str(alien['x_position'])) 35 # 向右移動外星人 36 # 據外星人當前速度決定將其移動多遠 37 if alien['speed']=='slow': 38 x_increment=1 39 elif alien['speed']=='medium': 40 x_increment=2 41 else: 42 x_increment=3 43 # 新位置等于老位置加上增量 44 alien['x_position']+=x_increment 45 print('new x_position:'+str(alien['x_position'])) 46 47 ##洗掉鍵值對 48 element={'名稱':'字典元素','數量':20,'大小':8} 49 print(element) 50 del element['大小'] 51 print(element) 52 ##字典的另外一種寫法 53 favorite_languages={ 54 'jen':'python', 55 'ben':'java', 56 'edward':'ruby', 57 'phil':'c', 58 } 59 ###遍歷字典(遍歷所有的鍵 —值對) 60 print('遍歷favorite_languages所有的鍵-值對:') 61 for key,value in favorite_languages.items(): 62 print('\nkey:'+key) 63 print('value:'+value+'\n') 64 ''' 65 注意,即便遍歷字典時,鍵 — 值對的回傳順序也與存盤順序不同,Python不關心鍵 — 值對的存 66 儲順序,而只跟蹤鍵和值之間的關聯關系, 67 ''' 68 ##按順序遍歷字典的所有鍵 69 print('按順序遍歷字典的所有鍵:') 70 for key in favorite_languages.keys(): 71 print(key) 72 ##按順序遍歷字典的所有值: 73 print("按順序遍歷字典的所有值:") 74 for value in favorite_languages.values(): 75 print(value) 76 ''' 77 上面這種做法提取字典中所有的值,而沒有考慮是否重復,涉及的值很少時,這也許不是問題,但如果被調查者很多, 78 最終的串列可能包含大量的重復項,為剔除重復項,可使用集合(set),集合類似于串列,但每個元素都必須是獨一無二的: 79 ''' 80 favorite_food={ 81 '小明':'紅燒肉', 82 '康康':'蓮藕', 83 '增哥':'紅燒肉', 84 '強哥':'火鍋', 85 } 86 print('按順序遍歷字典的所有值,有重復項:') 87 for food in favorite_food.values(): 88 print(food) 89 ###使用集合set()剔除重復項 90 print('使用集合set()剔除重復項之后的值:') 91 for food in set(favorite_food.values()): 92 print(food) 93 ##嵌套字典 94 ''' 95 有時候,需要將一系列字典存盤在串列中,或將串列作為值存盤在字典中,這稱為嵌套,你 96 可以在串列中嵌套字典、在字典中嵌套串列甚至在字典中嵌套字典, 97 ''' 98 my_list1={'color':'red','point':5} 99 my_list2={'color':'green','point':6} 100 my_list3={'color':'black','point':8} 101 '''嵌套字典''' 102 my_list=[my_list1,my_list2,my_list3] 103 print('遍歷這個嵌套字典串列:') 104 for my_list_show in my_list: 105 print(my_list_show) 106 '''案例2:''' 107 108 # 創建一個用于存盤外星人的空串列 109 print('----------------------------------') 110 print('------------外星人-------------') 111 alien_dict=[] 112 #創建30個外星人 113 for alien_number in range(30): 114 new_alien={'color':'green','point':5,'speed':'slow'} 115 alien_dict.append(new_alien) 116 #修改外星人的值 117 for alien_show in alien_dict[:3]: 118 if alien_show['color']=='green': 119 alien_show['color']='yellow' 120 alien_show['speed']='fast' 121 alien_show['種類']='精英' 122 #顯示前五個外星人 123 print('顯示前五個外星人') 124 for alien_show in alien_dict[:5]: 125 print(alien_show) 126 127 ## 顯示創建了多少個外星人 128 print('共創建了外星人有:'+str(len(alien_dict))) 129 130 ##在字典中存盤串列 131 #披薩的資訊 132 pizza={ 133 '廚師':'湯米', 134 '配料':['生菜','雞蛋','面粉','牛肉'] 135 } 136 #概述所點披薩 137 print('披薩的廚師是:'+str(pizza['廚師'])+'\n配料有:') 138 for topping in pizza['配料']: 139 print('\t'+topping) 140 love_language={ 141 '小明':['C語言','Python'], 142 '強哥':['C語言','shell'], 143 '平哥':['python'], 144 '康康':['C#'], 145 } 146 for name,languages in love_language.items(): 147 print('\n'+name+'喜歡的語言有:') 148 for lang in languages: 149 print(lang) 150 ##在字典中存盤字典和串列 151 print('------------------------------------') 152 print('列印張三豐和王重陽的資訊:') 153 users={ 154 '張三豐':{ 155 '姓氏':'張', 156 '名稱':'三豐', 157 '居住地':'武當山', 158 '門派':'武當派', 159 '嫡傳弟子':['宋遠橋','俞蓮舟','俞岱巖','張松溪','張翠山','殷梨亭','莫聲谷'] 160 }, 161 '王重陽':{ 162 '姓氏':'王', 163 '名稱':'重陽', 164 '居住地':'終南山', 165 '門派':'全真教', 166 '嫡傳弟子':['馬鈺','譚處端','劉處玄','丘處機','王處一','郝大通','孫不二'] 167 } 168 } 169 for user_name,user_info in users.items(): 170 print('姓名:'+user_name) 171 last_name=user_info['姓氏'] 172 first_name=user_info['名稱'] 173 home=user_info['居住地'] 174 family=user_info['門派'] 175 child=user_info['嫡傳弟子'] 176 print('姓氏:'+last_name) 177 print('名稱:'+first_name) 178 print('居住地:'+home) 179 print('門派:'+family) 180 print('嫡傳弟子:'+str(child)) 181 print('\n\n\n')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/149355.html
標籤:Python
上一篇:MongoDB的delete
