字典
1 字典的增加
(1)直接指定key、value,无则增加,有则修改。
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic['hobby']='美女'
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', 'hobby': '美女'}
(2)dic.setdefaulte() 有key则不修改,无则添加。
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.setdefault('身高',180)
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男', '身高': 180}
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.setdefault('age',180)
print(dic)
结果为:{'name': '韦小宝', 'age': 20, 'sex': '男'}
2 字典的删除
(1)按照键值删除 dic.pop(),del dic[key],del删时字典里面的键时,如果键不存在会报错
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.pop('name')
print(dic)
结果为:{'age': 20, 'sex': '男'}
del dic['age'] print(dic) 结果为: {'name': '韦小宝', 'sex': '男'}
(2) 如果dic.pop("n")里面的键不存在,则会报错。可指定默认返回值
dic={ 'name':'韦小宝', 'age':20, 'sex':'男',}
print(dic.pop("n"))
结果会报错:
Traceback (most recent call last): File "E:/python/test.py", line 14, in <module> print(dic.pop("n")) KeyError: 'n'
指定默认返回值
print(dic.pop("n",'abcdf')) 输出为: abcdf
(3)随机删除 dic.popitem()
字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.popitem()
print(dic)
结果为:{'name': '韦小宝', 'age': 20}
Python3.5后版本后默认删除最后一组键值对
(4)清空字典 dic.clear()
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
dic.clear()
print(dic)
结果为:{}
3 字典的修改
(1)dic.update(k=v),有则修改,无则添加
dic1={ "name":"乔峰", "age": 30, "job": "帮主" } dic1.update(gender="男") dic1.update(age=32) print(dic1)
结果为:
{'name': '乔峰', 'age': 32, 'job': '帮主', 'gender': '男'}
(2)将dic2中的内容覆盖添加至dic1,dic2不变。
dic1={ "name":"乔峰", "age": 30, "job": "帮主" } dic2={ "name":"段誉", "hoby":"美女" } dic1.update(dic2) print(dic1) print(dic2)
结果为:
{'name': '段誉', 'age': 30, 'job': '帮主', 'hoby': '美女'}
{'name': '段誉', 'hoby': '美女'}
4 字典的查找
(1)按照键值查找
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic['name'])
结果为:韦小宝
(2)dic.get(),参数为键,如果键不存在,默认返回None,可指定返回值
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.get('age'))
结果为:20
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.get('agei','没有。。。。'))
结果为:没有。。。。
(3)打印键和值,类似于列表的一个容器,没有索引。
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
print(dic.keys())
print(dic.values())
结果为:
dict_keys(['name', 'age', 'sex'])
dict_values(['韦小宝', 20, '男'])
(4)循环打印键或者值
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
for i in dic.keys():
print(i)
结果为:
name
age
sex
(5)同时输出键值
dic={
'name':'韦小宝',
'age':20,
'sex':'男',
}
for k,v in dic.items():
print(k,v)
结果为:
name 韦小宝
age 20
sex 男
5 字典的嵌套
(1)给name_list增加一个值"姜维"
dic={
'name_list]':['诸葛亮','庞统','司马懿',],
2:{
'leader':'刘备',
'age':'48',
}
}
dic['name_list]'].append('姜维')
print(dic)
结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿', '姜维'], 2: {'leader': '刘备', 'age': '48'}}
(2)给字典里边的2(字典)增加一个键值对"wife:孙尚香"
dic={
'name_list]':['诸葛亮','庞统','司马懿',],
2:{
'leader':'刘备',
'age':'48',
}
}
dic[2]['wife']='孙尚香'
print(dic)
结果为:{'name_list]': ['诸葛亮', '庞统', '司马懿'], 2: {'leader': '刘备', 'age': '48', 'wife': '孙尚香'}}
6 删除字典中键值包含"k"的键值对
dic = {
'k1': 'v1',
'k2': 'v2', 'k3':'v3',
'name':'alex'
}
l1=[]
for i in dic:
if 'k' in i:
l1.append(i)
print(l1)
for i in l1:
del dic[i]
print(dic)
结果为:
['k1', 'k2', 'k3']
{'name': 'alex'}
7 Python 字典 fromkeys() 函数
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
dic={}
dic=dic.fromkeys('abc',666)
print(dic)
dic=dic.fromkeys('abc',[])
print(dic)
结果为:
{'a': 666, 'b': 666, 'c': 666}
{'a': [], 'b': [], 'c': []}
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典为 : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" % str(dict))
结果为:
新的字典为 : {'name': None, 'age': None, 'sex': None}
新的字典为 : {'name': 10, 'age': 10, 'sex': 10}

浙公网安备 33010602011771号