note:键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
1.取值
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print("dict['Name']: ", dict['Name']);
print( "dict['Age']: ", dict['Age']);
输出:
dict[‘Name’]: Zara
dict[‘Age’]: 7
2.修改
`
dict = {‘Name’: ‘Zara’, ‘Age’: 7, ‘Class’: ‘First’};
dict[‘Age’] = 8; # update existing entry
dict[‘School’] = “DPS School”; # Add new entry
print(“dict[‘Age’]: “, dict[‘Age’]);
print(“dict[‘School’]: “, dict[‘School’]);
`
输出:
dict[‘Age’]: 8
dict[‘School’]: DPS School
3.删除
`
dict = {‘Name’: ‘Zara’, ‘Age’: 7, ‘Class’: ‘First’};
del dict[‘Name’]; # 删除键是’Name’的条目
dict.clear(); # 清空词典所有条目
del dict; # 删除词典
若key不存在,怎会返回错误,
`
d[‘Thomas’]
Traceback (most recent call last):
File “”, line 1, in
KeyError: ‘Thomas’
`
有两种方法判断key’是否存在
1.in,
`
‘Thomas’ in d
False
`
2.get(),如果key不存在,可以返回None,或者自己指定的值
`
d.get(‘Thomas’)
d.get(‘Thomas’, -1)//指定的值为-1
-1
`
4.内置函数和方法
- 内置函数
序号 | 函数及描述 |
---|---|
1 cmp(dict1, dict2) | 比较两个字典元素。 |
2 len(dict) | 计算字典元素个数,即键的总数。 |
3 str(dict) | 输出字典可打印的字符串表示。 |
4 type(variable) | 返回输入的变量类型,如果变量是字典就返回字典类型。 |
- 内置方法
序号 | 函数及描述 |
---|---|
1 dict.clear() | 删除字典内所有元素 |
2 dict.copy() | 返回一个字典的浅复制 |
3 dict.fromkeys(seq[, val]) | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 dict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
5 dict.has_key(key) | 如果键在字典dict里返回true,否则返回false |
6 dict.items() | 以列表返回可遍历的(键, 值) 元组数组 |
7 dict.keys() | 以列表返回一个字典所有的键 |
8 dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
10 dict.values() | 以列表返回字典中的所有值 |
11 pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 popitem() | 随机返回并删除字典中的一对键和值。 |
5特点
请务必注意,dict内部存放的顺序和key放入的顺序是没有关系的。
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法