字典(dict)是一个元素集,其中每个元素为一个“键(key)—值(value)”对。
字典主要有以下性质:
(1)多类型。字典能存储任意类型的对象。同一个字典中的“键”和“值”类型均可不同。
(2)唯一性。同一个字典中的每个“键”都是唯一的,而“值”可以重复。
字典的构建遵循如下规则:
(1)不同元素用“,”(逗号)分隔。
(2)同一个元素中的“键”和“值”用“:”(冒号)分隔。
(3)整个字典用“{}”(花括号)所包括。
如下所示:
dict1 = {key1:value1, key2:value2}
创建字典时,可以使用dict()方法,也可以直接用“{}”来包括其中的元素。
a = dict()
b = dict({1:'aaa',2:'bbb',3:'ccc'})
c = {1:'aaa',2:'bbb',3:'ccc'}
print(a)
print(b)
print(c)
Out:
{}
{1: 'aaa', 2: 'bbb', 3: 'ccc'}
{1: 'aaa', 2: 'bbb', 3: 'ccc'}
fromkeys用于根据元组(包括所有键)创建字典:
t = (1,2,3)
a1 = dict.fromkeys(t)
a2 = dict.fromkeys(t,'aaa')
print(a1)
print(a2)
Out:
{1: None, 2: None, 3: None}
{1: 'aaa', 2: 'aaa', 3: 'aaa'}
复制字典时,使用copy。
a = {1:'aaa',2:'bbb',3:'ccc'}
b = a
c = a.copy()
b.pop(3)
print(a)
print(b)
print(c)
Out:
{1: 'aaa', 2: 'bbb'}
{1: 'aaa', 2: 'bbb'}
{1: 'aaa', 2: 'bbb', 3: 'ccc'}
update用于向字典中增加元素,或修改字典中的元素。
a = {1:'aaa',2:'bbb',3:'ccc'}
a.update({4:'ddd'}) # 增加元素
print(a)
a.update({4:'abcd'}) # 修改元素
print(a)
Out:
{1: 'aaa', 2: 'bbb', 3: 'ccc', 4: 'ddd'}
{1: 'aaa', 2: 'bbb', 3: 'ccc', 4: 'abcd'}
若需要将2个字典合并,可以使用copy+update方法。
a = {1:'aaa',2:'bbb'}
b = {3:'ccc',4:'ddd'}
c = a.copy()
c.update(b)
print(c)
Out:
{1: 'aaa', 2: 'bbb', 3: 'ccc', 4: 'ddd'}
查询单个元素:已知“键”查询“值”时,“键”用“[]”(中括号)包括。
a = {1:'aaa',2:'bbb',3:'ccc'}
a1 = a[2]
print(a1)
Out:
bbb
判断某个“键”是否在字典中:
a = {1:'aaa',2:'bbb',3:'ccc'}
b = 3 in a
print(b)
Out:
True
popitem用于读取字典中的1个元素,同时将该元素从字典中删除。
a = {1:'aaa',2:'bbb',3:'ccc'}
t1 = a.popitem()
print(t1)
print(type(t1))
print(a)
Out:
(3, 'ccc')
{1: 'aaa', 2: 'bbb'}
items、keys、values等方法可以输出整个字典的元素、键、值:
a = {1:'aaa',2:'bbb',3:'ccc'}
items1 = a.items()
keys1 = a.keys()
values1 = a.values()
print(items1)
print(keys1)
print(values1)
print(type(items1))
print(type(keys1))
print(type(values1))
Out:
dict_items([(1, 'aaa'), (2, 'bbb'), (3, 'ccc')])
dict_keys([1, 2, 3])
dict_values(['aaa', 'bbb', 'ccc'])
使用items、keys、values等方法输出的元素、键、值等,可以转化为集合(set):
a = {1:'aaa',2:'bbb',3:'ccc'}
items1 = a.items()
keys1 = a.keys()
values1 = a.values()
s1 = set(items1)
s2 = set(keys1)
s3 = set(values1)
print(s1)
print(s2)
print(s3)
Out:
{(2, 'bbb'), (3, 'ccc'), (1, 'aaa')}
{1, 2, 3}
{'bbb', 'ccc', 'aaa'}
也可以转化为列表(list):
a = {1:'aaa',2:'bbb',3:'aaa'}
list1 = list(a.keys())
list2 = [key for key in a.keys()]
list3 = list(a.values())
list4 = [value for value in a.values()]
print(list1)
print(list2)
print(list3)
print(list4)
Out:
[1, 2, 3]
[1, 2, 3]
['aaa', 'bbb', 'aaa']
['aaa', 'bbb', 'aaa']
pop用于根据“值”删除对应的元素。
a = {1:'aaa',2:'bbb',3:'ccc'}
a.pop(3) # 删除键为3的元素
print(a)
Out:
{1: 'aaa', 2: 'bbb'}
clear用于清空字典,即删除所有元素。
a = {1:'aaa',2:'bbb',3:'ccc'}
a.clear()
print(a)
Out:
{}