4.7 字典
字典是一種可變容器模型,可以存儲任意類型對象,也就是所謂的 "來者是客"。
k={‘name‘:‘zhouyuyao‘,‘age‘:21,‘sex‘:‘female‘}
print(k)
print(type(k))
# 返回結果:
# {‘name‘: ‘zhouyuyao‘, ‘age‘: 21, ‘sex‘: ‘female‘}
# <class ‘dict‘>
k1=dict(a=1,b=2,c=3)
print(k1)
# 返回結果:
# {‘a‘: 1, ‘b‘: 2, ‘c‘: 3}
# 元組裏面一個列表,列表裏面兩個元組
d=dict([(‘name‘,‘list‘),(‘age‘,20)])
print(d)
# 返回結果:
# {‘name‘: ‘list‘, ‘age‘: 20}
# 字典的常用方法
k1.clear() # clear 相當於把 k1 裏面的值清除
print(k1)
# get方法
print(k.get(‘name‘))
print(k.get(‘age‘))
# 返回結果:
# zhouyuyao
# 21
# setdefault
print(k.setdefault(‘name‘))
print(k.setdefault(‘age‘,‘changsha‘))
print(k.setdefault(‘address‘,‘changsha‘))
# 返回結果:
# zhouyuyao
# 21
# changsha
# keys
print(k.keys())
# 返回結果:
# dict_keys([‘name‘, ‘age‘, ‘sex‘, ‘address‘])
# values
print(k.values())
# iteritems
print(k.items()) #在 python3 裏面用 items() 替換 iteritems()
# 返回結果:
# dict_items([(‘name‘, ‘zhouyuyao‘), (‘age‘, 21), (‘sex‘, ‘female‘), (‘address‘, ‘changsha‘)])
for x,y in k.items()
print(x,y)
# 返回結果:
# name zhouyuyao
# age 21
# sex female
# address changsha
# Python 3.0 內的另一個重大改變是字典內dict.iterkeys(),dict.itervalues(),dict.iteritems()方法的刪除。
# 取而代之的是:dict.keys(),dict.values(),dict.items(),
# 它們被進行了修補,可以返回輕量的、類似於集的容器對象,而不是鍵和值的列表。
# 這樣的好處是在不進行鍵和條目復制的情況下,就能在其上執行set操作。
# dict.has_key()同樣被移除。
l=[‘a‘,‘b‘,‘c‘,‘d‘]
m={}
n=m.fromkeys(l,123)
n=dict.fromkeys(l,123)
print(n)
# 返回結果:
# {‘a‘: 123, ‘b‘: 123, ‘c‘: 123, ‘d‘: 123}
l1=[‘a‘,‘b‘,‘c‘,‘d‘]
l2=[1,2,3,4]
dict_test=dict(zip(l1,l2)) #應該為字典
print(dict_test)
print(k)
# 返回結果:
# {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4}
# {‘name‘: ‘zhouyuyao‘, ‘age‘: 21, ‘sex‘: ‘female‘, ‘address‘: ‘changsha‘}
# 將 dict_test 和 k 合並
dict_test.update(k)
print(dict_test)
# 返回結果:
# {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4, ‘name‘: ‘zhouyuyao‘, ‘age‘: 21, ‘sex‘: ‘female‘, ‘address‘: ‘changsha‘}
# 對字典進行排序
mm=dict(a=1,b=10,c=3,d=9)
print(mm)
print(sorted(mm.items(),key=lambda d: d[1],reverse=True))
# 返回結果:
# {‘a‘: 1, ‘b‘: 10, ‘c‘: 3, ‘d‘: 9}
# [(‘b‘, 10), (‘d‘, 9), (‘c‘, 3), (‘a‘, 1)]
4.7 字典