python精简笔记-[6]-字典[dict]

字典的创建

方法1:直接创建

a = {"name":"wyl","age":"23","area":"BeiJing"}

方法2:通过元组列表换行

>>> a = [["name","wyl"],("age","23"),["area","Beijing"]]#将元组,类表转换为字典
>>> b = dict(a)
>>> print(b)
{'age': '23', 'name': 'wyl', 'area': 'Beijing'}

方法3:通过关键字创建字典

>>> c = dict(name = "wyl",age = "23",area = "BeiJing")
>>> print(c)
{'age': '23', 'name': 'wyl', 'area': 'BeiJing'}

方法4:创建默认值为空值的字典

#方法4创建一个默认value值为‘空值’的字典
>>> a = {}.fromkeys(['name','age','area'],'空值')
>>> print(a)
{'name': '空值', 'age': '空值', 'area': '空值'}
>>> a = {}.fromkeys(['name','age','area'])
>>> print(a)
{'name': None, 'age': None, 'area': None}

2.字典格式化:format_map

>>> a = {"name":"王云龙","age":'12','area':'北京'}
>>> str = "我的名字叫{name},今年{age}岁了,目前在{area}工作"
>>> print(str.format_map(a))
我的名字叫王云龙,今年12岁了,目前在北京工作

3.字典的访问

方法1:dict[key]

>>> a = {"name":"wyl","age":"23","area":"BeiJing"}
>>> print(a["name"])#此方法获取value时当key不存在时候,会报错。所以建议获取value建议使用get方法
w

方法2:get方法

>>> a = {"name":"wyl","age":"23","area":"BeiJing"}
>>> print(a.get('wyl'))#此方法获取value时,当key不存在时候,可指定没有key返回0如:a.get('wyl',0)
None

方法3:keys,values,items遍历访问

dic = {'Name': 'Jack', 'Age': 7, 'Class': 'First'}

# 1  直接遍历字典获取键,根据键取值
for key in dic:
    print(key, dic[key])

# 2  利用items方法获取键值,速度很慢,少用!
for key,value in dic.items():
    print(key,value)

#3  利用keys方法获取键
for key in dic.keys():
    print(key, dic[key])

#4  利用values方法获取值,但无法获取对应的键。
for value in dic.values():
    print(value)

3.字典的更新和添加

#key不存在dickt[key]='value'与dict.setdefault一样都是添加新值。
#key值存在则会dict[key]='value'会改变原值-字典的更新。
#key值存在则setdefault('key',value)方法不会改变原来的值key值存在

>>> a = {"name":"wyl","age":"23","area":"BeiJing"}
>>> a["admin"] = "password"#key值不存在添加
>>> a.setdefault('admin123','password123')#key值不存在添加
'password123'
>>> print(a)
{'name': 'wyl', 'age': '23', 'area': 'BeiJing', 'admin': 'password', 'admin123': 'password123'}

key值不存在

>>> a = {"name":"wyl","age":"23","area":"BeiJing","admin":"123","admin123":'123'}
>>> a["admin"] = "已更新"#key值不存在添加
>>> a.setdefault('admin123','不会更新')#key值不存在添加
'123'
>>> print(a)
{'name': 'wyl', 'age': '23', 'area': 'BeiJing', 'admin': '已更新', 'admin123': '123'}

字典更新字典

>>> a = {"name":"wyl","age":"23","area":"BeiJing"}
>>> b = {"name":"wyl","age":"24","area":"BeiJing","admin":"123","admin123":'123'}
>>> a.update(b)
>>> print(a)
{'name': 'wyl', 'age': '24', 'area': 'BeiJing', 'admin': '123', 'admin123': '123'}

4.字典的清空,及删除字典元素

>>> dic
{'Name': 'Jack', 'Age': '20', 'Class': 'First', 'sex': 'male'}
>>> del dic['Name']     # 删除指定的键
>>> dic
{'Age': '20', 'Class': 'First', 'sex': 'male'}
>>> a = dic.pop('Class')        # 弹出并返回指定的键
>>> a
'First'
>>> dic
{'Name': 'Jack', 'Age': 7}
>>> dic.clear()         # 清空字典
>>> dic
{}
>>> del dic         # 删除字典本身
>>> dic
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    dic
NameError: name 'dic' is not defined

5.字典的拷贝

#深/浅拷贝
from copy import deepcopy
a = {"name":['wyl','lyw'],"age":"23","area":"BeiJing"}
print('原始a',a)
newaa = a.copy()#浅拷贝
newa = deepcopy(a)#深拷贝
a["name"][1] = "王云龙"
print("修改原始a后:",a)
print("浅拷贝newaa",newaa)
print("深拷贝newa",newa)
# 修改原始a后: {'name': ['wyl', '王云龙'], 'age': '23', 'area': 'BeiJing'}
# 浅拷贝newaa {'name': ['wyl', '王云龙'], 'age': '23', 'area': 'BeiJing'}
# 深拷贝newa {'name': ['wyl', 'lyw'], 'age': '23', 'area': 'BeiJing'}

 

转载于:https://my.oschina.net/wangyunlong/blog/3002827

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值