Python的学习笔记---Dict和set

dict类型的使用

python有一个dict类型,存储格式是key:value的形式,在其他语言有的成为mapDictionary.

1
2
3
>>> dict={"a":1,"b":3}
>>> dict["a"]
1

由于dict是根据key查询数据,所以查询的效率比list要高出不少。

取值的时候,key如果不存在则会报异常。所以为了更安全的使用dict可以使用前判断下:

1
2
>>> "a" in dict
True

或者可以使用get函数,如果不存在,则返回None数据,也可以指定默认值:

1
2
3
4
>>> dict.get("c")
>>> dict.get("c",1)
1
>>>
  1. dict的key必须是不可变对象
  2. dict的内部顺序和存储的先后顺序没有关系
  3. 查找和插入的速度极快,不会随着key的增加而变慢
  4. 需要占用大量的内存,内存浪费多。

dict可以使用pop方法对数据进行删除:

1
2
3
4
>>> dict.pop("b")
3
>>> dict
{'a': 1}

set类型

set类型与list相似,是一种不会有重复数据的数组:

1
2
3
4
5
6
>>> list=[1,2,1,2,3,3,4,5,1,1,1,1,5,6]
>>> list
[1, 2, 1, 2, 3, 3, 4, 5, 1, 1, 1, 1, 5, 6]
>>> set(list)
{1, 2, 3, 4, 5, 6}
>>>

set可以使用add()方法增加数据,如果增加重复数据,但不会有效果。

1
2
3
4
5
6
7
8
9
10
>>> list=[1,2,1,2,3,3,4,5,1,1,1,1,5,6]
>>> aset=set(list)
>>> aset
{1, 2, 3, 4, 5, 6}
>>> aset.add(7)
>>> aset
{1, 2, 3, 4, 5, 6, 7}
>>> aset.add(7)
>>> aset
{1, 2, 3, 4, 5, 6, 7}

使用remove移除数据:

1
2
3
>>> aset.remove(1)
>>> aset
{2, 3, 4, 5, 6, 7}

set可以看成数学中的集合,可以进行交集并集的计算:

1
2
3
4
5
6
7
>>> a=set([1,2,3,4,5])
>>> b=set([4,5,6,7,8])
>>> a&b
{4, 5}
>>> a|b
{1, 2, 3, 4, 5, 6, 7, 8}
>>>