28 November, 2008

Python Idiom: dictionary

這次將介紹 dictionary 的常見用法,底下是建立 dictionary 的兩種方法
d = dict(a=1, b=2, c=3)
d = {'a': 1, 'b': 2, 'c': 3}
第一種做法不用打括號,打字會稍微快一點, 如果要用兩個 list 分別當作 dictionary 的 keys 跟 values, 可以利用 zip() 這個函式,例如
names = ['a', 'b', 'c']
counts = [1, 2, 3] 
d = dict(zip(names, counts))
其中 zip(names, counts) 會傳回
[('a', 1), ('b', 2), ('c', 3)]
注意如果 zip() 有 M 個輸入序列的話, 則其輸出序列所含的 tuple 中的元素就會有 M 個。 如果要得到 dictionary 所有的 key 可以用 .keys(), 如果要得到所有的 value 可以用 .values(), 如果要同時得到 key 跟 value 可以用
for (k,v) in d.items():
     print k, v
或是
for k in d:
     print k, d[k]
上面的程式碼在介紹 in 也曾提到。

No comments: