基本介绍

Dict是一种可变容器,可以存储任意类型数据。以键值对(key-value)存储,其中键和值用冒号(:)分隔,每一元素用逗号(,)分隔,整个字典包含在大括号({})里。Dict相比较list查找速度快,但需要多存储键,所以占用空间大,相当于用空间换取时间,也算遵循了守恒原则。在创建字典时键必须是唯一的不可变的,而值可以是任意类型。当含有相同键名是,后边的会覆盖前边的值。

d={'a':1,'b':2,1:'one',2:'two',3:[1,2,3]}#无序的,键必须是唯一的,且是不可变得类型,值可以是任何的数据类型。
print(type(dict))
print(type(d))
print(d)

#输出结果如下:
<class 'type'>
<class 'dict'>
{'a': 1, 'b': 2, 1: 'one', 2: 'two', 3: [1, 2, 3]}

访问,修改,删除

访问元素需要知道某元素的键才能访问,通过dict[key]方式访问。判断key是否存在通过 key in dict 或 dict.get(key,v)方式访问,get方法中第二个参数若不写默认返回None,若key存在则返回给定的值。修改元素直接通过dict[key]进行修改,若原字典中不存在则直接会添加进去。删除某元素可以通过del(dict[key])或dict.pop(key)直接删除某键值元素。清空字典则用dict.clear()清空后里面元素为空。删除字典用del dict。

#访问元素
print(d['a']) #访问键为a的值
print(d[1]) #访问键为1的值
print(d[3])
print(len(d))#所含元素个数

#判断key是否存在
print('two' in d) #判断键为two是否存在d中
print(3 in d)  #判断键为3是否在d中
print(d.get('3',-1))#3存在返回-1,可指定范围的值

#修改
d[3]=3 #修改键为3的值
d["c"]=5 #添加元素
print(d)

#删除
del(d[3])  #del(dict[key])#删除健为3的元素
print(d)

d.pop(2) #pop(key)#删除键为2的元素
print(d)

d.clear() #清空字典
print(d)
del d #删除字典

#运行结果如下:
1
one
[1, 2, 3]
5
False
True
-1
{'a': 1, 'b': 2, 1: 'one', 2: 'two', 3: 3, 'c': 5}
{'a': 1, 'b': 2, 1: 'one', 2: 'two', 'c': 5}
{'a': 1, 'b': 2, 1: 'one', 'c': 5}
{}

遍历元素

遍历方法有三种:第一种是通过key进行遍历,显示出来的是对应的值。也可通过键值对的方式遍历,显示出来的是键值对,注意其中的变量不是关键字而是任意对应变量。还有可以直接使用dict.keys()函数遍历所有元素的key值,输入的类型为dict_keys,输出的结果只是key。

for key in d:
	print(d[key]) #通过key遍历value
print('----')
for key,value in d.items(): #通过key,value遍历
	print(key,value)
print('----')
for k,v in d.items(): #通过key,value遍历,k,v只代表对应的变量名
	print(k,v)

keys=d.keys() #遍历所有的key
print(type(keys))
print(keys)

#运行结果如下:
1
2
one
5
----
a 1
b 2
1 one
c 5
----
a 1
b 2
1 one
c 5
<class 'dict_keys'>
dict_keys(['a', 'b', 1, 'c'])