Python学习_04Python的数据类型(二)
接上节课内容
json在线解析及格式化验证:http://www.json.cn/
- 3、字典dict
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
字典的常用方法:
1>get (k) 返回key所对应的value值
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
print
(d.get(
"name"
))
返回结果:
D:\python\venv\Scripts\python.exe D:/python/0401.py
xiexiaolong
Process finished with exit code 0
2>
setdefault(k,v) 如果key不存在,则设置一个默认值v,并返回v,如果key存在,则返回对应的key
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
print
(d.get(
"name"
))
print
(d.setdefault(
"name"
,
"rrrr"
));
print
(d.setdefault(
"ttt"
,
4567
))
返回结果;
D:\python\venv\Scripts\python.exe D:/python/0401.py
xiexiaolong
xiexiaolong
4567
Process finished with exit code 0
3> keys()、values() 获取所有的keys,获取所有的values
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
print
(d.keys());
print
(d.values())
返回结果
D:\python\venv\Scripts\python.exe D:/python/0401.py
dict_keys(['name', 'age', 'address', 'gender'])
dict_values(['xiexiaolong', 19, 'shengzheng', 'man'])
Process finished with exit code 0
4>
items() (python2中iteritems同python3中的items,2中的items一次性返回所有的keys和values,3中的items返回一个对象) 列表返回可遍历的(键, 值) 元组数组。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
for
i,j
in
d.items():
print
(i,j)
返回结果:
D:\python\venv\Scripts\python.exe D:/python/0401.py
name xiexiaolong
age 19
address shengzheng
gender man
Process finished with exit code 0
5>
update() 把a字典的keys、values更新到b字典中
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
m =
dict
()
m.update(d)
print
(d);
print
(m);
返回结果:
D:\python\venv\Scripts\python.exe D:/python/0401.py
{'name': 'xiexiaolong', 'age': 19, 'address': 'shengzheng', 'gender': 'man'}
{'name': 'xiexiaolong', 'age': 19, 'address': 'shengzheng', 'gender': 'man'}
Process finished with exit code 0
6>
pop(k) 删除k:v对应的元素,返回删除的value;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
a =
dict
(
a
=
1
,
b
=
2
)
print
(d)
print
(d.pop(
"age"
));
print
(d)
返回结果:
D:\python\venv\Scripts\python.exe D:/python/0401.py
{'name': 'xiexiaolong', 'age': 19, 'address': 'shengzheng', 'gender': 'man'}
19
{'name': 'xiexiaolong', 'address': 'shengzheng', 'gender': 'man'}
Process finished with exit code 0
7> zip(l1,l2) 高阶函数
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\4\1 0001 16:34
# @Author : xiexiaolong
# @File : 0401.py
d = {
"name"
:
"xiexiaolong"
,
"age"
:
19
,
"address"
:
"shengzheng"
,
"gender"
:
"man"
};
l1 = [
"a"
,
"b"
,
"c"
,
"d"
]
l2 = [
1
,
2
,
3
,
4
]
print
(
dict
(
zip
(l1, l2)))
返回结果:
D:\python\venv\Scripts\python.exe D:/python/0401.py
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
Process finished with exit code 0