python3学习--4 字典

python3学习--4 字典

通过 名字 引用 值的数据结构, 即 键-值 这种类型的数据结构称为 映射 字典 是 python 唯一内建的 映射类型,

字典 中的值没有顺序,但是都在对应的 键下,需要注意的是 :值 可以为任意的 python 类型的 数据或 对象,但是

键 只能是 不可变 类型的数据 例如 数字 字符串 元组 , 列表不能作为键。另外 键 是唯一的 ,而值并不唯一。

1.字典的格式

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})

>>> data = {"name":"liu","age":18}
>>> print(data)
{'name': 'liu', 'age': 18}

2.访问字典的值

>>> person = {"name":"liu","age":12,"sex":"man"}
>>> person["name"]
'liu'
>>> 

3.基本的字典操作

  • len(d)   返回 项(键值对)的数量
  • d[key]  返回关联到 键 key 上的值
  • d[key] = v 将值关联到 键 key 上
  • del d[k] 删除 键为 k 的项
  • k in d 检查 d 中是否含有键为k 的项

4. 字典的内置方法

>>> # clear  清除
>>> # clear 清除字典中的所有项
>>> x = {"name":"liu","age":12,"sex":"man"}
>>> x.clear()
>>> x
{}

>>> # copy  浅复制,当在副本中替换值时,原副>>>#本不受影响,但添加删除(原地修改)时,原
>>>#字典也会改变
>>> x = {"name":"liu","hobby":["music","game","running"]}
>>> y = x.copy()
>>> y
{'name': 'liu', 'hobby': ['music', 'game', 'running']}
>>> y["name"] = "zhangsan"
>>> y["hobby"].remove("game")
>>> y
{'name': 'zhangsan', 'hobby': ['music', 'running']}
>>> x
{'name': 'liu', 'hobby': ['music', 'running']}
>>> 

>>> # deepcopy  深复制
>>> from copy import deepcopy
>>> x = {"name":"liu","hobby":["music","game","running"]}
>>> dy = deepcopy(x)
>>> dy
{'name': 'liu', 'hobby': ['music', 'game', 'running']}
>>> dy["name"] = "zhangsan"
>>> dy["hobby"].append("reading")
>>> dy
{'name': 'zhangsan', 'hobby': ['music', 'game', 'running', 'reading']}
>>> x
{'name': 'liu', 'hobby': ['music', 'game', 'running']}
>>> 

>>> # fromkeys
>>> #使用给定的键 建立新字典
>>> dict.fromkeys(["name","age"])
{'name': None, 'age': None}
>>> 

>>> # get 宽松的访问字典的方式 如果不存在,不会报错,而是 None
>>> data.get("name")
'liu'
>>> data.get("sex")
>>> print(data.get("sex"))
None
>>> data.get("sex","N/A") #自定义 “默认值”
'N/A'
>>> 
>>> # update 利用一个字典项 更新另一个字典
>>> x = {"name":"liu","age":12}
>>> y = {"name":"zhangsan"}
>>> x.update(y)
>>> x
{'name': 'zhangsan', 'age': 12}
>>> 

  • items 以列表的形式返回字典的所有项 iteritems   返回迭代器对象
  • keys 将字典中的所有键以列表的形式返回 , iterkeys  返回对应的迭代器
  • values  将字典中的所有值以列表的形式返回 , itervalues  返回对应的迭代器







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值