一:字典定义
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的知识,点一下这里哦!!
|