python(5)---dirct/set

  今天在看python的时候,猛一看dirct和set,还以为是C/C++的某种方法,其实不然,这两种

可以看作是数据类型。

  dict提供了一种空间换时间的方法,非常方便查找,例如给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。

如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
这样就好比查字典,每一个字符都对应一个页码(key-value),这样会节省查找的时间。值得注意的是:每个对象只能有一个键值,不能有多
个值。还有dirct的对象必须是不可变的对象,如果对象一直变化,就很难建立一一对应的关系。
  set和dict类似,
也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
python还有一些方法操作这些数据类型,我附上一个讲的十分清晰的链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017104324028448
相关的代码如下:
 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 
 4 d = {
 5     'Michael': 95,
 6     'Bob': 75,
 7     'Tracy': 85
 8 }
 9 print('d[\'Michael\'] =', d['Michael'])
10 print('d[\'Bob\'] =', d['Bob'])
11 print('d[\'Tracy\'] =', d['Tracy'])
12 print('d.get(\'Thomas\', -1) =', d.get('Thomas', -1))
dict
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 s1 = set([1, 1, 2, 2, 3, 3])
5 print(s1)
6 s2 = set([2, 3, 4])
7 print(s1 & s2)
8 print(s1 | s2)
set

 

 


posted @ 2020-03-05 09:25  flyingswallow  阅读(248)  评论(0编辑  收藏  举报