字典
增
第一种:借助key
字典[key] = 'value'
有则改,无则加(记得加引号)
dic = {'name':'太白','age':18,'sex':'男',}
dic['name'] = 'alex'
dic['job'] = 'IT'
dic,len(dic)
({'name': '太白', 'age': 18, 'sex': '男'}, 3)
第二种:setdefault()方法
字典.setdafault('key','value')
有则不做任何操作,返回对应的值;无则加
dic = {'name':'太白','age':18,'sex':'男',}
print(dic,dic.setdefault('name','alex'))
dic.setdefault('job')
dic.setdefault('hobby','driving')
dic.setdefault(1,{'color':'black'})
print(dic)
{'name': '太白', 'age': 18, 'sex': '男'} 太白
{'name': '太白', 'age': 18, 'sex': '男', 'job': None, 'hobby': 'driving', 1: {'color': 'black'}}
删
第一种:pop()方法
字典.pop('key','提示语')
根据key去删除,若有,则删;若无,pop中若设置了第二个参数,则返回第二个参数,若无,则报错,一次仅能删除一个元素
dic = {'name':'太白','age':18,'sex':'男'}
print(dic,dic.pop('name'))
print(dic,dic.pop('name1','无此值'))
dic.pop('name2')
{'age': 18, 'sex': '男'} 太白
{'age': 18, 'sex': '男'} 无此值
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-12-a148355758b0> in <module>()
3
4 print(dic,dic.pop('name1','无此值'))
----> 5 dic.pop('name2')
KeyError: 'name2'
第二种:popitem()方法
字典.popitem()
python3.5之前随机删除一个键值对,3.6之后默认删除最后一个键值对.pop中仅有一个参数
dic = {'name':'太白','age':18,'sex':'男'}
dic.popitem()
dic
# dic.popitem(1)
{'name': '太白', 'age': 18}
第三种:del方法
del 字典[key]
按照键删除键值对,一次只能删除一个元素。del dic可从内存级别删除字典
dic = {'name':'太白','age':18,'sex':'男'}
del dic['name']
print(dic)
del dic
dic
{'age': 18, 'sex': '男'}
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-15-34f1c6d1c059> in <module>()
3 print(dic)
4 del dic
----> 5 dic
NameError: name 'dic' is not defined
第四种:clear方法
字典.clear
清空字典
dic = {'name':'太白','age':18,'sex':'男'}
dic.clear()
dic
{}
改
第一种:通过键赋值
字典[key] = value
增的第一种方法,若有则改,若无则加
dic = {'name':'太白','age':18,'sex':'男'}
dic['name'] = 'alex'
dic['job'] = 6
dic
{'name': 'alex', 'age': 18, 'sex': '男', 'job': 6}
第二种:update方法
字典1.update(字典2)
将字典2中的所有键值对覆盖添加到字典1中,字典2不变
dic = {'name':'太白','age':18,'sex':'男'}
dic2 = {'name':'alex','job':'it','hobby':'driving'}
dic.update(dic2)
print(dic,dic2)
dic3 = {'name':'wusir','age': 20}
dic4 = {'fisrt':'yang','weight':70}
dic3.update(dic4)
dic3,dic4
{'name': 'alex', 'age': 18, 'sex': '男', 'job': 'it', 'hobby': 'driving'} {'name': 'alex', 'job': 'it', 'hobby': 'driving'}
({'name': 'wusir', 'age': 20, 'fisrt': 'yang', 'weight': 70},
{'fisrt': 'yang', 'weight': 70})
update()还可以直接改字典一中的内容,格式为
字典一.update(key = value))
但需要注意的是,此时的key必须是字典一中所包含的key,而且不可以加引号
dic = {'name':'太白','age':18,'sex':'男'}
dic.update(name = 'yang')
dic
{'name': 'yang', 'age': 18, 'sex': '男'}
查:
第一种:字典[key]
若无报错
dic = {'name':'太白','age':18,'sex':'男'}
a = dic['name']
print(a)
b = dic['job']
太白
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-33-155bc2950dc5> in <module>()
2 a = dic['name']
3 print(a)
----> 4 b = dic['job']
KeyError: 'job'
第二种:get方法
字典.get(key,'提示信息')
若有,则返回value值,若无,若设置第二个参数,返回第二个参数,否则返回none
dic = {'name':'太白','age':18,'sex':'男'}
print(dic.get('name'))
print(dic.get('name1','无此值'))
print(dic.get('name2'))
太白
无此值
None
dic.keys() dic.values() dic.items()
可遍历,可转list
dic = {'name':'太白','age':18,'sex':'男'}
print(dic.keys(),type(dic.keys()))
l1 = list(dic.keys())
print(l1,type(l1))
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
['name', 'age', 'sex'] <class 'list'>
dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
for i in dic.keys():
print(i)
name
age
sex
job
分别赋值
a = 10
b = 20
a,b = b,a
a,b
(20, 10)
dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
for i,j in dic.items():
print(i,j)
name 太白
age 18
sex 男
job IT
小练习
dic = {'name_list': ['王双', 'alex', '孙飞', 'taibai'],
1: {'name': 'taibai', 'age': 18, 'sex': '男'},
(1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]
}
# 1,给 name_list对应的列表追加一个值: 司徒大人.
dic['name_list'].append('司徒大人')
dic
# 2,将name_lsit对应的alex 变成全部大写.
dic['name_list'][1] = dic['name_list'][1].upper()
dic
# 3, 将1对应的字典添加一个键值对: weight : 75
dic[1]['wight'] = 75
dic
# 4,将1 对应的字典的name键对应的名字taibai 换成alex
dic[1]['name'] = 'alex'
dic
# 5,将 {'ip': '192.168.1.1', 'port': 3306} 次字典的port键值对删除.
dic[(1,2)][1].pop('ip')
dic
{'name_list': ['王双', 'ALEX', '孙飞', 'taibai', '司徒大人'],
1: {'name': 'alex', 'age': 18, 'sex': '男', 'wight': 75},
(1, 2): [100, {'port': 3306}]}
a = 'alex'
b = list(a)
print(b)
网友评论