Python——Dict

Python字典(Dictionary)

字典是一种可变容器模型,可存储任意类型对象。

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

 d = {key1 : value1, key2 : value2 }

字典的特点:

键必须是唯一的,但值则不必唯一。

值可以取任何数据类型,但键必须是不可变的类型。

  不可变类型:数字、字符串、元组;

  可变类型:列表、字典。

字典中键值是无序的。

1、创建字典

方法1:

1 dic = {'ID':'123124','name':'oliver','age':18

输出

{'name': 'oliver', 'age': 18, 'ID': '123124'}

方法2:

1 dic = dict((('ID','234234'),))   #括号后的逗号表示第二对括号里边是一个序列

输出:

{'ID': '234234'}

2、访问字典

通过key去查找。

例1:

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(dic['name'])

输出:

oliver

例2:

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(list(dic.keys()))

输出:

['age', 'ID', 'name']

例3:

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(list(dic.values()))

输出:

18, '123124', 'oliver']

例4:

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(list(dic.items()))

输出:

[('ID', '123124'), ('age', 18), ('name', 'oliver')]

2、更新字典

若不存在,将dic2中的键值加入dic;若存在,则更新值
1 dic = {'ID':'123124','name':'oliver','age':18}
2 dic2 = {'1':'122','123':'123'}
3 dic.update(dic2)
4 print(dic)

输出:

{'age': 18, 'ID': '123124', '1': '122', 'name': 'oliver', '123': '123'}

2、删除字典

清空字典

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(dic.clear()) 

输出:

None

删除键值对

1 dic = {'ID':'123124','name':'oliver','age':18}
2 del dic['name'] 
3 print(dic)

输出:

{'age': 18, 'ID': '123124'}

删除整个字典

1 del dic5 
2 print(dic5)

输出:

name 'dic5' is not defined

删除键值对,并返回该key对应的值

1 dic = {'ID':'123124','name':'oliver','age':18}
2 print(dic.pop('age'))

输出:

18
{'ID': '123124', 'name': 'oliver'}

随机删除键值对,并以元组的形式返回删除的键值对

1 a = dic.popitem() 
2 print(a,dic)

输出:

('ID', '123124') {'age': 18, 'name': 'oliver'}

setdefault()

如果字典中存在此key,则不做修改;如果不存在,则添加键值。该方法还可以返回添加的值。

1 dic = {'ID':'123124','name':'oliver','age':18}
2 ret = dic.setdefault('hobby','film')
3 print(dic)
4 print(ret)

输出:

{'name': 'oliver', 'ID': '123124', 'hobby': 'film', 'age': 18}
film

fromkeys()

 创建一个新字典。

1 dic6=dict.fromkeys(['host1','host2','host3'],'test')
2 print(dic6)

输出:

{'host2': 'test', 'host1': 'test', 'host3': 'test'}

sorted()

将字典中的键进行排序。

1 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
2 print(sorted(dic))

输出:

[111, 121, 211, 554]

按照键对字典进行排序。

1 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
2 print(sorted(dic.items()))

输出:

[(111, 'aa'), (121, 'asdf'), (211, 'ds'), (554, 'bb')]

has_keys()

Python 2中使用has_keys()判断指定的key在字典中是否存在。存在则返回True。

1 dic={5:'555',2:'666',4:'444'}
2 dic.has_keys(5)

Python 3中的判断方法:

1 print(5 in dic)

3、字典遍历

1 dic = {'ID':'123124','name':'oliver','age':18}
2 for i in dic:
3     print(i,dic[i])

输出:

name oliver
age 18
ID 123124
原文地址:https://www.cnblogs.com/pyramid1001/p/5800797.html