字典
字典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) 删除变量