Dict和set类型
浏览量:410
什么是Dict
1、花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
由于dict也是集合,len() 函数可以计算任意集合的大小:
例:新来的Paul同学成绩是 75 分,请编写一个dict,把Paul同学的成绩也加进去。
答: d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul':75 } >>> len(d) 4
2、访问dict
一是先判断一下 key 是否存在,用 in 操作符:
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
例:根据如下dict:
d = { 'Adam': 95, Adam: 95 'Lisa': 85, 打印出 Lisa: 85 'Bart': 59 Bart: 59 }
答:print 'Adam:',d['Adam'] print 'Lisa:',d['Lisa'] print 'Bart:',d['Bart']
3.dict的特点
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样
dict的缺点是占用内存大,还会浪费很多内容(由于dict是按 key 查找,所以,在一个dict中,key不能重复。)
dict的第二个特点就是存储的key-value序对是没有顺序的(这说明dict内部是无序的,不能用dict存储有序的集合。)
dict的第三个特点是作为 key 的元素必须(不可变)
例:请设计一个dict,可以根据分数来查找名字,已知成绩如下:
Adam: 95,
Lisa: 85,
Bart: 59.
答:d = { 95:'Adam', 85:'Lisa' 59:'BArt' }
4.更新dict
dict是可变的,也就是说,我们可以随时往dict中添加新的 key-value。
例:请根据Paul的成绩 72 更新下面的dict:
d = {
95: 'Adam',
85: 'Lisa',
59: 'Bart'
}
答:d[72]='Paul'
5.遍历dict
由于dict也是一个集合,所以,遍历dict和遍历list类似,都可以通过 for 循环实现。
例:请用 for 循环遍历如下的dict,打印出 name: score 来。
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
答:for index in d: print index+':',d[index];
什么是set
1.dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。(set内部存储的元素是无序的)
例:请用set表示班里的4位同学:Adam, Lisa, Bart, Paul
d = (['Adam','Lisa','Bart','Paul'])
2.访问set
由于上述set不能识别小写的名字,请改进set,使得 'adam' 和 'bart'都能返回True。
d = (['Adam','adam','Bart','bart']) print 'adam' in d print 'bart' in d
3.set的特点
set的内部结构和dict很像,唯一区别是不存储value
set存储的元素和dict的key类似,必须是不变对象
例:月份也可以用set表示,请设计一个set并判断用户输入的月份是否有效。
月份可以用字符串'Jan', 'Feb', ...表示。
答: months = set(['Jan', 'Feb', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov']) x1 = 'Feb' x2 = 'Sun' if x1 in months: print 'x1: ok' else: print 'x1: error' if x2 in months: print 'x2: ok' else: print 'x2: error'
4.遍历set
例:请用 for 循环遍历如下的set,打印出 name: score 来。
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
答:for dy in s print dy[0]+':',dy[1]
5.更新set
一是把新的元素添加到set中,二是把已有元素从set中删除。
添加元素时,用set的add()方法,删除set中的元素时,用set的remove()方法(如果删除的元素不存在set中,remove()会报错)
例:针对下面的set,给定一个list,对list中的每一个元素,如果在set中,就将其删除,如果不在set中,就添加进去。
s = set(['Adam', 'Paul']) L = ['Adam', 'Lisa', 'Bart', 'Paul']
答:for dset in L: if dset in s: s.remone(dset); else d.add(dset) print s
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。