字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
创建字典:
1
2
3
4
|
dic1
=
{
'name'
:
'alex'
,
'age'
:
36
,
'sex'
:
'male'
}
dic2
=
dict
(((
'name'
,
'alex'
),))
print
(dic1)
print
(dic2)
|
对应操作:
1 增
1
2
3
4
5
6
7
8
9
10
|
dic3
=
{}
dic3[
'name'
]
=
'alex'
dic3[
'age'
]
=
18
print
(dic3)
#{'name': 'alex', 'age': 18}
a
=
dic3.setdefault(
'name'
,
'yuan'
)
b
=
dic3.setdefault(
'ages'
,
22
)
print
(a,b)
print
(dic3)
|
2 查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
dic3
=
{
'name'
:
'alex'
,
'age'
:
18
}
# print(dic3['name'])
# print(dic3['names'])
#
# print(dic3.get('age',False))
# print(dic3.get('ages',False))
print
(dic3.items())
print
(dic3.keys())
print
(dic3.values())
print
(
'name'
in
dic3)
# py2: dic3.has_key('name')
print
(
list
(dic3.values()))
|
3 改
1
2
3
4
5
6
|
dic3
=
{
'name'
:
'alex'
,
'age'
:
18
}
dic3[
'name'
]
=
'alvin'
dic4
=
{
'sex'
:
'male'
,
'hobby'
:
'girl'
,
'age'
:
36
}
dic3.update(dic4)
print
(dic3)
|
4 删
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
dic4
=
{
'name'
:
'alex'
,
'age'
:
18
,
'class'
:
1
}
# dic4.clear()
# print(dic4)
del
dic4[
'name'
]
print
(dic4)
a
=
dic4.popitem()
print
(a,dic4)
# print(dic4.pop('age'))
# print(dic4)
# del dic4
# print(dic4)
|
5 其他操作以及涉及到的方法
5.1 dict.fromkeys
1
2
3
4
5
6
7
8
9
10
|
d1
=
dict
.fromkeys([
'host1'
,
'host2'
,
'host3'
],
'Mac'
)
print
(d1)
d1[
'host1'
]
=
'xiaomi'
print
(d1)
#######
d2
=
dict
.fromkeys([
'host1'
,
'host2'
,
'host3'
],[
'Mac'
,
'huawei'
])
print
(d2)
d2[
'host1'
][
0
]
=
'xiaomi'
print
(d2)
|
5.2 d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典
5.3 字典的嵌套
View Code
5.4 sorted(dict) : 返回一个有序的包含字典所有key的列表
1
2
|
dic
=
{
5
:
'555'
,
2
:
'222'
,
4
:
'444'
}
print
(
sorted
(dic))
|
5.5 字典的遍历
1
2
3
4
5
6
7
8
9
|
dic5
=
{
'name'
:
'alex'
,
'age'
:
18
}
for
i
in
dic5:
print
(i,dic5[i])
for
items
in
dic5.items():
print
(items)
for
keys,values
in
dic5.items():
print
(keys,values)
|
还用我们上面的例子,存取这个班学生的信息,我们如果通过字典来完成,那:
1
2
3
4
|
dic
=
{
'zhangsan'
:{
'age'
:
23
,
'sex'
:
'male'
},
'李四'
:{
'age'
:
33
,
'sex'
:
'male'
},
'wangwu'
:{
'age'
:
27
,
'sex'
:
'women'
}
}
|