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

dict类型的使用

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

1
2
3
4
5
6
7
8
9
10
11
>>> dict={"a":1,"b":3}
>>> dict["a"]
1
```
由于`dict`是根据key查询数据,所以查询的效率比`list`要高出不少。

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

``` ptyhon
>>> "a" in dict
True

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> dict.get("c")
>>> dict.get("c",1)
1
>>>
```

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


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

```python
>>> 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
11
12
13
14
15
16
17
18
>>> 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`移除数据:

```Python
>>> 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}
>>>
作者

付威

发布于

2019-03-07

更新于

2019-03-07

许可协议

评论