1. 程式人生 > >python學習(五)字典學習

python學習(五)字典學習

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學習(五)字典學習