字典
字典key:value 鍵值對 (無序)
字典是另一種可變容器模型,且可存儲任意類型對象
鍵是唯一的 值不必
鍵必須是不可變的 如:字符串 數字 元組
字典創建
info = {'name':'班長', 'id':100, 'sex':'f', 'address':'中國'}
print(info['name'])
print(info['address'])
注:列表使用[],元組使用(),字典使用{}.
通過get方式獲取不存在的鍵值,不然會報錯
>>> age = info.get('age')
>>> age #'age'鍵不存在,所以age爲None
>>> type(age)
<type 'NoneType'>
>>> age = info.get('age', 18) # 若info中不存在'age'這個鍵,就返回默認值18
>>> age
使用[]添加或修改元素
dict = {'Name': 'guojiaxu', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # 更新 Age
dict['School'] = "nylg" # 添加信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
刪除字典元素
del dict['Name'] # 刪除鍵 'Name'
dict.clear() # 刪除字典
del dict # 刪除字典
字典是支持無限極嵌套的,如下面代碼:
citys={
'北京':{
'朝陽':['國貿','CBD','天階','我愛我家','鏈接地產'],
'海淀':['圓明園','蘇州街','中關村','北京大學'],
'昌平':['沙河','南口','小湯山',],
'懷柔':['桃花','梅花','大山'],
'密雲':['密雲A','密雲B','密雲C']
},
'河北':{
'石家莊':['石家莊A','石家莊B','石家莊C','石家莊D','石家莊E'],
'張家口':['張家口A','張家口B','張家口C'],
'承德':['承德A','承德B','承德C','承德D']
}
}
for i in citys['北京']:
print(i)
輸出結果:
懷柔
密雲
昌平
海淀
朝陽
for i in citys['北京']['海淀']:
print(i)
輸出如下結果:
圓明園
蘇州街
中關村
北京大學
字典遍歷
使用keys()獲取所有鍵
dict = {'name':'guo','sex':'boy'}
for key in dict.key():
print(key)
>>name
>>sex
使用values()獲取所有值
dict = {'name':'guo','sex':'boy'}
for value in dict.values():
print(value)
>>guo
>>boy
使用items()獲取所有鍵值對
dict = {'name':'guo','sex':'boy'}
for item in dict.items():
print(item)
>>('name','guo')
>>('sex','boy')
遍歷字典的key-value(鍵值對)
dict = {'name':'guo','sex':'boy'}
for key,value in dict.items():
print('key=%s,value=%s'%(key,value))
>>key=name,value=guo
>>key=sex,value=boy
字典操作
使用update()合併字典、會覆蓋原有的值。
def mydict01():
a = {"name":"aaa", "age":20}
b = {"id":20, "name":"bbb"}
a.update(b)
print(a)
使用del刪除具有指定鍵的元素
def mydict01():
a = {"name":"aaa", "age":20}
b = {"id":20, "name":"bbb"}
# del刪除某個刪除
del b["id"]
使用clear清除所有元素
def mydict02():
# 1. 清空字典方式
a = {"name":"aaaa"}
a = {}
# 2. clear
a.clear()
使用in判斷是否存在(判斷的是字典的鍵)
def mydict03():
a = {"name": "aaa", "age": 20}
# keys獲得字典中所有鍵的列表
print( list(a.keys()) )
# values獲得字典中所有的值的列表
print(list(a.values()))
# items返回值和鍵的列表
print( list(a.items()) )
for k, v in a.items():
print("%s:%s" %(k, v))
if "name" not in a.keys():
print("不存在!")
else:
print("存在!")
python內置函數
len(item) 計算容器中元素個數
max(item) 返回容器中元素最大值
min(item) 返回容器中元素最小值
del(item) 刪除變量