python--字典

一:字典定义

1:概念

字典(dict)是一组键和值对的数据结构,字典是键和值的映射的关系,且字典的键必须是可hash的对象。

2:创建

字典的每个键值 key—>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中,键是hash对象,因此是不可变对象(如bool,tuple,int,float等)可以作为键。

dict () #创建一个空字典
dict(iterable) #用序列创建字典
dict(mapping) #从一个字典对象创建一个新的字典

>>> dict()
{}
>>> {}
{}
>>> dict({1:"我",2:"她"})
{1: '我', 2: '她'}
>>> dict(hao="niaho",hh="hello")
{'hao': 'niaho', 'hh': 'hello'}

注意字典键:1.不允许出现两次,创建时如果同一个键被赋值两次,后一个值会被记住

>>> dict01 ={1:"我",2:"我们",1:"wo",3:"他们"}
>>> print(dict01[1])
wo

2.键必须不可变用hash对象,可以用数字,字符串或元组充当,而用列表就不行

>>> dict01 = {[2]:"我们",3:"题目"}
Traceback (most recent call last):
  File "<pyshell#63>", line 1, in <module>
    dict01 = {[2]:"我们",3:"题目"}
TypeError: unhashable type: 'list'

二:对字典的操作

1.添加元素

>>> dict01 ={1:"我",2:"我们",3:"他们"}
>>> dict01
{1: '我', 2: '我们', 3: '他们'}
>>> dict01[7]="她"
>>> dict01
{1: '我', 2: '我们', 3: '他们', 7: '她'}

2.删除字典元素和清空字典

>>> dict01 ={1:"我",2:"我们",3:"他们"}
>>> del dict01[2]  # 删除键
>>> dict01
{1: '我', 3: '他们', 7: '她'}
>>> dict01.clear()   # 清空字典,但字典还有空间
>>> dict01
{}
>>> del dict01   # 删除字典,无空间预留
>>> dict
<class 'dict'>
>>> dict01
Traceback (most recent call last):
  File "<pyshell#77>", line 1, in <module>
    dict01
NameError: name 'dict01' is not defined

3.修改字典元素

>>> dict01 ={1:"我",2:"我们",3:"他们"}
>>> dict01[1]="你们"
>>> dict01
{1: '你们', 2: '我们', 3: '他们'}

4.判断字典键是否存在

>>> dict01 ={1:"我",2:"我们",3:"他们"}
>>> 1 in dict01
True
>>> 8 in dict01
False

三:字典的视图对象

字典d的视图对象,可以动态的访问字典的数据。

d.keys() #返回d的键的列表
d.values() #返回d的值的列表
d.items() #返回d中的键和值的列表

dict01 ={"wo":28,"ta":12,"nihao":90,"hello":10}
>>> d ={"wo":28,"ta":12,"nihao":90,"hello":10}
>>> d.keys()
dict_keys(['wo', 'ta', 'nihao', 'hello'])
>>> d.values()
dict_values([28, 12, 90, 10])
>>> d.items()
dict_items([('wo', 28), ('ta', 12), ('nihao', 90), ('hello', 10)])
 # 对值进行迭代
>>> n=0
>>> vlaue= d.values()
>>> for i in vlaue:
	n+=i	
>>> print(n)
140

四:字典的遍历

字典的视图对象是可以迭代的对象

dict02 ={1:"你好",2:"你是",4:"我"}
>>> for k,v in dict02.items():
	print("键={},值={}".format(k,v))=1,值=你好
键=2,值=你是
键=4,值=

五: 字典解析表达式

快速的计算生成一个字典,将满足条件的内容进行迭代

>>> {k:v for k in "abc" for v in range(3)}
{'a': 2, 'b': 2, 'c': 2}

>>> dict01 ={1:"我",2:"我们",3:"他们"}
>>> {v:k for k,v in dict01.items()}
{'我': 1, '我们': 2, '他们': 3}

>>> {x:x*x for x in range(10) if x%2==0}
{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}
         今天的小知识点就到此结束了

总结:
运用好字典可以让更好对一些数据的处理,一天学习点python知识让自己充实,学习的过程就是一种量变的变化,而结果则是发生了质变。
随便看看菜鸟的主页,谢谢!!!!!
想学习更多的关于python的知识,点一下这里哦!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世界和平l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值