字典以键值对的方式存在:{键:值};键key是唯一的,如果有重复的key,会以后者为准,但值value不必是唯一的;
i={};#创建一个空的字典;
d={2:22,'abc':'ABC'};
b={'key1':'value1','key2':'value2'};#这是一个字典。
在字典中增加一项:d['new1']='NEW1';[]里填健名,'='号后面写值;
删除字典中的一项:deldel d[2];#[]里填健名。
查看字典中的某一项:get()
d.get(12,'没找到');#()中对应('键','默认值');没找到会输出'默认值';默认值不写会输出'None';
print(d[2]);同样是查找并返回字典中的某一项。
用for in循环遍历字典中的内容:keys()获取键的集合,values()获取值的集合,items()获取键值对的集合,items()返回的是元组类型。
#分别遍历并输出键和值:
#遍历并输出‘键’:[.keys()]
for key in d.keys():
print(key);
#遍历并输出‘值’:[.values()]
for value in d.values():
print(value);
#遍历字典,并且将键和值成对输出,返回的是元组类型(key,value):[.items()]
for k,v in d.items():
print(k,v);
len():查看字典的长度;str():将字典类型转换为字符串类型;
type():查看数据类型;
clear():清空字典;
copy():复制字典;想知道这个方法是复制内存地址,还是复制内容,只需要修改原本/副本中的任意一项,看看影响不影响另一字典(原本/副本);copy()这个方法是复制的是内容;
pop():()里写key,删除与key对应的键与值;删除不存在的key会报错。key键,value值;
d={1:11,2:22,3:33,4:44,5:55,6:66}
print(len(d));#查看字典d里有几对键值;
s=str(d);#将字典d转换成字符串类型;
print(s);
print(type(d));
print(type(s));
d.clear();#清空d中的内容;
print(d);
b=d.copy();#复制一份d,并且把副本赋值给b;
d.pop(2);#删除健名为'2'的键值对
print(d);
popitem():删除字典中的最后一项键值;也会随机删除字典中的任何一项键值;此方法删除一个空字典会报错。d.popitem();
print(d);
字典占用的内存与访问速度不会随着键值的增加而增加。
字典是无序的,不能使用下标来查找某一项,只能使用键key来查找某一项,不能使用切片,而字符串、元组、列表是有序的。
字典中键的特性:
1、不允许同一个键出现两次;创建时如果同一个键被赋值两次,而后一个值会被记住。
2、在字典中,键必须不可变,可以用数字、字符串、元组作为键,但是列表不能作为键。
字典和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;{键key:value值}
需要占用大量的内存,内存浪费多。
无序、唯一。使用哈希算法算键值的位置。
而list相反:
查找和插入的事件随着元素的增加而增加;
占用空间小,浪费内存很少。