集合字典数据表示与操作

上传人:ji****72 文档编号:56765534 上传时间:2018-10-15 格式:PPTX 页数:24 大小:362.42KB
返回 下载 相关 举报
集合字典数据表示与操作_第1页
第1页 / 共24页
集合字典数据表示与操作_第2页
第2页 / 共24页
集合字典数据表示与操作_第3页
第3页 / 共24页
集合字典数据表示与操作_第4页
第4页 / 共24页
集合字典数据表示与操作_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《集合字典数据表示与操作》由会员分享,可在线阅读,更多相关《集合字典数据表示与操作(24页珍藏版)》请在金锄头文库上搜索。

1、第三章 数据表示和计算,1,3.4.3 集合和字典,1. 集合 2.字典,2,1. 集合,集合的特点 集合是无序的,不能通过数字进行索引。 集合的元素不能重复出现 集合的应用 去除列表中的重复元素 求两个列表的相同元素(交集) 求两个列表的不同元素(差集),3,(1)创建集合,Python的集合可分为可变集合(set)和不可变集合(frozenset) 对可变集合( 可以添加和删除元素, 对不可变集合 则不允许添加和删除元素这样 使用创建的是可变集合set,中用逗号分隔的数据项作为集合的一个元素。 通过类型构造器set()和frozenset()创建不同类型的集合。,4,【例3-4-16】集合

2、的字面表示示例, s1=2,4,6,8,10 type(s1) s1 8, 10, 4, 2, 6 s2=hello s2 hello,5,【例3-4-17】集合的类型构造器示例,set函数的参数是容器对象,可以是字符串,列表和元组,它可以将序列的数据元素作为集合set的元素。 s3=set(hello) s3 l, e, o, h 同样还可以根据列表对象元组来创建集合 s5=set(he,hello,her,here) s5 here, hello, he, her,6,【例3-4-18】列表去重复操作示例,通过set函数建立列表的去重复集合元素,再通过list方法根据集合创建列表: L1

3、= 1,2,3,4,1,2,3,4 s4=set(L1) s4 1, 2, 3, 4 L2=list(s4) L2 1, 2, 3, 4 L2是去重复后的列表,上面的过程也可简单地写为: L2=list(set(L1) print L21, 2, 3, 4set是可以改变的集合类型,如果创建后的集合不需改变集合元素,可创建不可变集合。,7,【例3-4-19】 创建一个星期的英文缩写的不可变集合。, s6=frozenset(MON,TUE,WED,THU,FRI,SAT,SUN) s6 frozenset(SUN, WED, TUE, SAT, FRI, MON, THU),8,(2)访问集合

4、,由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。,9,【例3-4-20】集合访问示例, SUN in s6 True SON in s6 False for i in s6: print(i,end=“ “)SUN WED TUE SAT FRI MON THU,10,(3)集合运算,11,【例3-4-21】集合运算示例,对前面已建立的集合s2,s5作以下操作: s2 hello s5 here, hello, he, her s2 s5s2 True s2&s5 hello s5-s2 her, he, here s2|s5

5、 her, hello, he, here,12,【例3-4-21】集合运算示例(续),判断两个集合是否相等,只需判断其中包含的集合元素是否一致,与顺序无关,下面的例子又说明了集合是无序的。 s7=he,hello, her,here s7 her, hello, he, here s5 here, hello, he, her s5=s7 True,13,(4)集合对象的方法,打星号*的方法是set集合独有的方法,不打星号的方法是两种集合都有的方法,14,2. 字典,字典是python中唯一内置映射数据类型,可以通过指定的键从字典访问值。 例如表示星期时,用1表示星期一(MON),6表示星期

6、六(SAT),0表示星期日(SUN)。 字典是一个由键和值组成的键值对构成的集合,每一个字典元素分为两部份:键(key)和值(value)。 字典类型dict是无序的集合体,,15,(1)字典的创建,字面值 类型构造器dict(),16,字面值,字典的字面值是由一对花括号括起的,以逗号分隔的键值对构成,键值对的书写形式为:【例3-4-24】字典的字面表示示例。 d1=1:MON,2:TUE,3:WED,4:THU,5:FRI,6:SAT,0:SUN d1 0: SUN, 1: MON, 2: TUE, 3: WED, 4: THU, 5: FRI, 6: SAT【例3-4-25】嵌套字典示例

7、test=“test“:“mytest“:10 test test: mytest: 10,17,类型构造器dict(),使用类型构造器构造字典,参数为键值对,键值对之间以,分割,键值对的书写形式为=。 monthdays = dict( Jan=31, Feb=28, Mar=31, Apr=30, May=31, Jun=30, Jul=31, Aug=31, Sep=30, Oct=31, Nov=30,Dec=31 ),18,【例3-4-26】使用类型构造器构造字典示例。, weekday=dict(1=MON,2=TUE,3=WED,4=THU,5=FRI,6=SAT,0=SUN)

8、SyntaxError: keyword cant be an expression weekday=dict(a1 =MON,a2=TUE,a3=WED,a4=THU,a5=FRI,a6=SAT,a0=SUN) weekday a3: WED, a2: TUE, a1: MON, a0: SUN, a6: SAT, a5: FRI, a4: THU,19,(2)字典元素的访问,字典元素的访问方式是通过键访问相关联的值,访问形式为:。,20,【例3-4-27】字典元素的访问。, monthdays“Jan“ 31 monthdays“Jau“ Traceback (most recent ca

9、ll last):File “, line 1, in monthdays“Jau“ KeyError: Jau,21,(3)字典的基本运算,字典是可修改。 【例3-4-28】monthdays“Jan“=31,可把Jan的值由31改为30。 字典是可添加元素的。 【例3-4-29】 monthdays“test”=30,可添加一个新键值对。 字典是可删除元素的。 【例3-4-30】del monthdays“test“可删除字典条目。Apr: 30, Dec: 31, May: 31, Feb: 28, Aug: 31, Oct: 31, Jan: 30, Jun: 30, Jul: 31,

10、 Mar: 31, Sep: 30, Nov: 30,22,(4)字典对象的方法,23,【例3-4-26】keys和values方法示例, monthdays.keys() dict_keys(Apr, Dec, May, Feb, Aug, Oct, Jan, Jun, Jul, Mar, Sep, Nov) monthdays.values() dict_values(30, 31, 31, 28, 31, 31, 30, 30, 31, 31, 30, 30) dict_keys和dict_values也是一个迭代器对象,可以通过迭代方式访问其中的元素,例如: for i in monthdays.keys(): print(i,end=“ “) Apr Dec May Feb Aug Oct Jan Jun Jul Mar Sep Nov文本对象的表示和操作,24,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号