字典是python核心物件集合中的唯一的一種對映型別,也具有可變性----可以就地改變,並可以隨需求增大或減小,就像列表那樣。
建立字典方式1:
>>> d =
>>> d['food']
'spam'
>>> d['quantity'] += 1
>>> d
>>>
方式2:開始乙個空字典,然後每次以乙個鍵來填充它。
如:描述某人記錄中的名字字段
>>> d = {}
>>> d['name'] = 'bob'
>>> d['job'] = 'dev'
>>> d['age'] = 40
>>> d
>>> print(d['name'])
bob
python巢狀的靈活性:
>>> rec = ,
'job':['dec','mgr'],
'age': 40.5}
>>> rec['name']
>>> rec['name']['last']
'smith'
>>> rec['job']
['dec', 'mgr']
>>> rec['job'][-1] #rec['job'][0]就是輸出第乙個工作dec
'mgr'
>>> rec['job']
['dec', 'mgr', 'janitor']
>>> rec
}>>>
字典中鍵的排序:for迴圈
作為對映,字典僅支援通過鍵獲取元素。
但是,在各種常見的應用場合,通過呼叫方法,我們也支援特定的操作。
因為字典不是序列,他們並不包含任何可靠的從左到右的序列。
我們問了按順序輸出,一般的辦法是,將鍵值按順序進行排序:
>>> d =
>>> d
>>> ks = list(d.keys())
>>> ks
['a', 'c', 'b']
>>> ks.sort()
>>> ks
['a', 'b', 'c']
>>> for key in ks:
print(key,'=>',d[key])
('a', '=>', 1)
('b', '=>', 2)
('c', '=>', 3)
利用sorted內建函式可以一步完成。sorted呼叫返回結果並對個物件型別進行排序,
自動對字典的鍵排序:
>>> d
>>> for key in sorted(d):
print(key,'=>',d[key])
('a', '=>', 1)
('b', '=>', 2)
('c', '=>', 3)
>>>
迭代:
從左到右地掃瞄乙個物件的每個python工具都使用迭代協議。這就是為什麼上面介紹的sorted呼叫直接工作於字典之上,我們不必呼叫keys方法來得到乙個序列,因為字典是可迭代的物件,可以用乙個next返回後續的鍵。
如下使用了迭代協議:
>>> squares = [x ** 2 for x in [1,2,3,4,5]]
>>> squares
[1, 4, 9, 16, 25]
同上的功能
>>> squares =
>>> for x in [1,2,3,4,5]:
>>> squares
[1, 4, 9, 16, 25]
>>>
在字典中,我們有可能訪問不存在的鍵值,這樣的話會報錯,我們怎麼樣避免這種情況呢?
可以使用if語句判斷鍵值是否存在;
>>> d =
>>> d
>>> d['d'] = 99
>>> d
>>> d['f']
traceback (most recent call last):
file "", line 1, in d['f']
keyerror: 'f'
>>> 'f' in d
false
>>> if not 'f' in d:
print('missing')
missing
python一些知識點
程式設計中遇到的一些python小知識點總結 1.python中的itertools可以實現排列組合 2.陣列的交集並集差集 輸入的是str,如果要得到int 型別,需要轉換 3,有時候老是會print 之後,出現at 0x000000000257e828 情況,而不是我想要的資料 比如陣列 b i...
基本知識點
1 程序和執行緒的關係 1 在有執行緒的作業系統裡面,程序是分配資源的基本單位,執行緒是排程的基本單位。2 1個程序可以擁有多個執行緒 3 執行緒同時也有一些自己的資源,包括 程式計數器,堆疊等 4 因為執行緒所擁有的資源比較少,因此進行排程的時候所消耗的資源就少。5 執行緒共享程序的 段,程序的一...
基本知識點
dram 動態隨機訪問儲存器 dynamic random access memory 隨機訪問的意思是,訪問任何乙個記憶體單元的速度和它的位置 位址 無關,讀寫位址0x00001和0xffff0所需要的事件是一樣的。rom 唯讀儲存器 read only memory 它的內容是預先寫入的,掉電也...