dict
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度
d = {'python':7,"java":234,'go':3,123:567}
print(d)
print(d['python'])
print(d["java"])
print(d[123])
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
d['python'] = 14
d = d['python']
print(d)
要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
d = {'python':7,"java":234,'go':3,123:567}
i = "python" in d
print(i)
二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
i = d.get('python')
print(i)
和list比较,dict有以下几个特点:
1、查找和插入的速度极快,不会随着key的增加而变慢;
2、需要占用大量的内存,内存浪费多。
而list相反:
1、查找和插入的时间随着元素的增加而增加;
2、占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
SET
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
s = set([1,2,2,2,2,234,2,2,2,3,4,5,6,7,8,9,89,23,23,'python',23,2,3,23,2,3,2,3,'java','go'])
print(s)
效果如下
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
s = set([1,2,2,2,2,234,2,2,2,3,4,5,6,7,8,9,89,23,23,'python',23,2,3,23,2,3,2,3,'java','go'])
print(s)
s1 = s
s2 = set([1,2,3,4,5,6,345,23,45,6,'python','go','java'])
print(s1 & s2)
print(s1 | s2)