python學習(五)字典學習
阿新 • • 發佈:2017-10-21
pam 支持 ima adding 測試 僅支持 簡單 append anti
#!/usr/bin/python # 字典 # 當時學java的時候, 語言基礎就學了好久, 然後是各種API, 最後才是集合 # 鍵值對, 可變 # 1. 映射操作 D = {‘food‘ : ‘Spam‘, ‘quantity‘:4, ‘color‘:‘pink‘} print(D[‘food‘]) # 通過鍵來獲取值 D[‘quantity‘] += 1 # 改變鍵對應的值 # 另一種構造字典的方法 D = {} D[‘name‘] = ‘Bob‘ D[‘job‘] = ‘dev‘ D[‘age‘] = 40 # 在Python通過字典編寫的搜索方法很快# 重訪嵌套 rec = {‘name‘: {‘first‘:‘Bob‘, ‘last‘:‘Smith‘}, ‘job‘:[‘dev‘, ‘mgr‘], ‘age‘:40.5} rec[‘name‘] rec[‘name‘][‘last‘] rec[‘job‘] rec[‘job‘][-1] # ‘job‘鍵對應的列表的最後一個值 rec[‘job‘].append(‘janitor‘) # 所建立的這些對象都不需要手動釋放, 有Python的自動垃圾收集 # 2. 鍵的排序: for循環 # 字典僅支持通過鍵獲取元素, 而且有時候還是無需的# 如鍋要對字典進行排序, 先獲取鍵的列表, 然後使用sort方法進行排序 # 最後使用for循環逐個顯示結果 Ks = list(D.keys()) # 無需列表 Ks.sort() # 對key進行排序 for key in Ks: print(key, ‘=>‘, D[key]) for c in ‘spam‘: print(c.upper()) x = 4 while x > 0: print(‘spam!‘ * x) x -= 1 # 叠代和優化 squares= [ x ** 2 for x in [1, 2, 3, 4, 5]] print(squares) squares = [] for x in [1, 2, 3, 4, 5]: squares.append(x ** 2) # 列表解析和相關的函數編程工具, 如map和filter, 通常運行得比for循環快 # 首先為了簡單和可讀性去編寫代碼, 在程序可以工作, 並證實確實有必要考慮性能之後, 再考慮該問題 # 關於這個python提供了time以及timeit和profile模塊 # 不存在的鍵: if 測試 D = { ‘a‘ : 1, ‘c‘ : 3, ‘b‘ : 2} D[‘e‘] = 99 # D[‘f‘] 鍵‘f‘不存在, 這樣使用會報錯的 # in關系表達式允許我們查詢字典中一個鍵是否存在 if not ‘f‘ in D: print(‘missing key f in D‘) value = D.get(‘x‘, 0) # 獲取鍵‘x‘的值, 如果沒有獲取到那麽就是0付給value D[None] = 4 # None也可以作為鍵耶 print(D)
python學習(五)字典學習