Python基础之字典

1.创建字典

  字典中每个值都有一个唯一的key,key需要被哈希,可以是可以是数字、字符串、元组;用大括号'{}'将内容扩起来,且是无序的。

1 info = {'name':'fox','age':16,'work':'it'}
2 print(info)
3 结果:
4 {'age': 16, 'work': 'it', 'name': 'fox'}

2.增

  通过需要增加的key和值,直接赋值给字典,即可添加元素。

1 info = {'name':'fox','age':16,'work':'it'}
2 info['sex'] = 'M'
3 print(info)
4 结果:
5 {'name': 'fox', 'age': 16, 'work': 'it', 'sex': 'M'}

3.删

1)info.pop()删除指定key的键值对,如果所删除的key不存在则报错。

1 info = {'name':'fox','age':16,'work':'it'}
2 info.pop('work')
3 print(info)
4 结果:
5 {'name': 'fox', 'age': 16}

2)info.clear()清除所有键值对

1 info = {'name':'fox','age':16,'work':'it'}
2 info.clear()
3 print(info)
4 结果:
5 {}

4.改

1)同增类似,直接通过key的修改其对应的值,因为是无序无法查找其位置。

1 info = {'name':'fox','age':16,'work':'it'}
2 info['work'] = 'ui'
3 print(info)
4 结果:
5 {'work': 'ui', 'age': 16, 'name': 'fox'}

2)info.update()当另一个字典中有当前字典的key,则修改,像'age'中的16改成18;如果另一个字典中再当前字典中没有的key,则将键值对添加到当前字典,像'sex':'M'。

1 info = {'name':'fox','age':16,'work':'it'}
2 info1 = {'age':18,'sex':'M'}
3 info.update(info1)
4 print(info)
5 结果:
6 {'work': 'it', 'age': 18, 'name': 'fox', 'sex': 'M'}

5.查

1)info.get()根据指定key查找对应的值

1 info = {'name':'fox','age':16,'work':'it'}
2 print(info.get('age'))
3 结果:
4 16

2)info.setdefault()如果key存在,则读出该键对应的值;如果key不存在,则以该值作为字典的key,None作为值添加到字典中。

 1 info = {'name':'fox','age':16,'work':'it'}
 2 info.setdefault('work')
 3 print(info.setdefault('work'))
 4 print(info)
 5 info.setdefault('ff')
 6 print(info.setdefault('ff'))
 7 print(info)
 8 结果:
 9 it
10 {'work': 'it', 'age': 16, 'name': 'fox'}
11 None
12 {'work': 'it', 'age': 16, 'name': 'fox', 'ff': None}

6.遍历字典key和值

1)info.keys()遍历出字典info中的key

1 info = {'name':'fox','age':16,'work':'it'}
2 print(info.keys())
3 结果:
4 dict_keys(['age', 'work', 'name'])

2)info.values()遍历出字典info中的值

1 info = {'name':'fox','age':16,'work':'it'}
2 print(info.values())
3 结果:
4 dict_values(['it', 16, 'fox'])

3)info.item()通过for方法可将key和值都遍历出来

1 info = {'name':'fox','age':16,'work':'it'}
2 for key,value in info.items():
3     print(key,':',value)
4 结果:
5 age : 16
6 name : fox
7 work : it

7.OrderedDict类

  OrderedDict类可以将字典变得有序,正常情况下字典是无序的,一个普通的字典,如果键值对一样,即使顺序不一样,那么两个字典是相等的。

1 info = {'name':'fox','age':16,'work':'it'}
2 info1 = {'age':16,'work':'it','name':'fox'}
3 print(info == info1)
4 结果:
5 True

  使用OrderedDict()方法后,键值对一样,但是顺序不同时,不相等;OrderedDict()方法是collections模块的方法,不是内置方法,故需要导入,即(from collections import OrderedDict)指导入collections模块的OrderedDict类。

1 from collections import OrderedDict
2 info = {'name':'fox','age':16,'work':'it'}
3 info1 = {'age':16,'work':'it','name':'fox'}
4 info1 = OrderedDict()
5 print(info == info1)
6 结果:
7 False
原文地址:https://www.cnblogs.com/foxshu/p/12033924.html