版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chuhe163/article/details/88931472
文章目录
1、字典的定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
- 键必须是唯一的,但值则不必。(True代表1.False代表0)
- 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
- 字典是无序的,每次打印,输出的顺序可能都不相同
- 列表不能作为字典的key
- 字典不能作为字典的key
#以下是字典的实例
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
2、读取字典里的元素
2.1、读取某个元素
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
print(info["A"])
print(info[1])
输出:
a
1
2.2、for循环
2.2.1、遍历keys
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#遍历key
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for item in info.keys():
print(item)
输出:
A
B
C
1
2
3
2.2.2、遍历values
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#遍历value
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for item in info.values():
print(item)
输出:
a
b
c
1
2
3
2.2.3、遍历items
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
for itemKeys,itemValues in info.items():
print(itemKeys,itemValues)
输出:
A a
B b
C c
1 1
2 2
3 3
3、修改字典里的元素
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A": "a", "B": "b"}
info["A"] = "aa"
print(info)
输出:
{‘A’: ‘aa’, ‘B’: ‘b’}
4、删除字典里的元素
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info = {"A": "a", "B": "b", "C": "c", 1: 1, 2: 2, 3: 3}
del info["A"] #删除
print(info)
info.clear() #清空
print(info)
输出:
{‘B’: ‘b’, ‘C’: ‘c’, 1: 1, 2: 2, 3: 3}
{}
5、字典的一部分方法
5.1、fromkeys
fromkeys是个静态函数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info =dict.fromkeys(["A","B",1])
print(info)
info =dict.fromkeys(["A","B",1],123)
print(info)
输出:
{‘A’: None, ‘B’: None, 1: None}
{‘A’: 123, ‘B’: 123, 1: 123}
5.2、get
如果用info[key]这种形式读取元素时,元素中无匹配的key就会报错,此时可以用get来读取元素
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
print(info.get("A"))
print(info.get("AA")) #key不存在时返None
print(info.get("AA","0000"))#key不存在时使其返0000
输出:
a
None
0000
5.3、pop
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.pop("A") #删除该元素,并返回对应的value
print(v)
v=info.pop("AA","0000") #删除的元素不存在,使其返0000
print(v)
print(info)
输出:
a
{‘B’: ‘b’}
0000
{‘B’: ‘b’}
5.4、popitem
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.popitem() #随机删除一个元素
print(v)
itemKey,itemValue=info.popitem() #随机删除一个元素
print(itemKey)
print(itemValue)
输出 :
(‘B’, ‘b’)
A
a
5.5、setdefault
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
v=info.setdefault("A","c") #新增一个键值对,如果key存在字典中,不新增,并返回key对应的value
print(v)
print(info)
v=info.setdefault("C","c") #新增一个键值对,如果key不存在字典中,则新增,并返回新增元素key对应的value
print(v)
print(info)
输出:
a
{‘A’: ‘a’, ‘B’: ‘b’}
c
{‘A’: ‘a’, ‘B’: ‘b’, ‘C’: ‘c’}
5.6、update
#!/usr/bin/env python
# -*- coding:utf-8 -*-
info ={"A":"a","B":"b"}
info.update({"A":"aa","B":"b"}) #修改元素的value
print(info)
info.update(A="AA") #修改元素的value ,key不用加“”
print(info)