Python入门篇-封装与解构和高级数据类型集合(set)和字典(dict)
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.封装和结构
1 #!/usr/bin/env python 2 #_*_conding:utf-8_*_ 3 #@author :yinzhengjie 4 #blog:http://www.cnblogs.com/yinzhengjie 5 6 7 8 x = 1,3,5,7 #Python中的封装,注意,这里把等号后边的int数据类型封装成元组了 9 print(x) 10 11 a,b = [100,200] #线性结构,可以同时为多个变量赋值 12 a,b = b,a #可以很轻松的实现数据交换 13 print(a,b) 14 15 m,n = {"name":"Jason","Age":18} #非线性结构也可以解构,即2边的个数要相同,m和n这2个变量分别赋值 16 print(m,n) 17 18 y,*z = 100,200,300,400,500,600 #注意,y为变量标识符,而z则为可变参数(可变参数只能存在一个,存在2个会报语法错误),他会把后面的元素放入到一个列表中 19 print(y,z) 20 21 22 head,*mid,tail = range(10) #注意,这也是结构,左边的标识符要大于或等于2个才能算得上结构哟~ 23 print(head,mid,tail) 24 25 x,[a,b],z = (1,[2,3],(4,5)) #当然,咱们也可以这样去解构,它会按照我们的想法对号入座 26 print(x,a,b,z) 27 28 29 30 #以上代码执行结果如下: 31 (1, 3, 5, 7) 32 200 100 33 name Age 34 100 [200, 300, 400, 500, 600] 35 0 [1, 2, 3, 4, 5, 6, 7, 8] 9 36 1 2 3 (4, 5)
二.集合(set)
1>.集合的特点
约定
set 翻译为集合
collection 翻译为集合类型或容器,是一个大概念
set
可变的、无序的、不重复的元素的集合
2>.set定义和初始化
#!/usr/bin/env python #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com ''' set() -> new empty set object set(iterable) -> new set object ''' s1 = set() s2 = set(range(10)) s3 = set(list(range(20))) #dict s4 = {} #set s5 = {1,3,5,7,9} s6 = {(1,3),5,'A'} #集合只能存放不可变的的元素,如果存放list和bytearray时会报错:"unhashable type" s7 = {(2,),3,None,"abc",b"ABC"} s8 = set(enumerate(range(5))) print(s1) print(s2) print(s3) print(s4) print(s5) print(s6) print(s7) print(s8) #以上代码执行结果如下: set() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} {} {1, 3, 5, 7, 9} {'A', (1, 3), 5} {3, None, (2,), b'ABC', 'abc'} {(0, 0), (3, 3), (4, 4), (2, 2), (1, 1)}
3>.set的元素
set的元素要求必须可以hash
不可hash的类型有list、set,bytearray,dict
元素不可以索引
set可以迭代
4>.set增加
#!/usr/bin/env python #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y1053419035@qq.com ''' add(elem) 增加一个元素到set中 如果元素存在,什么都不做 ''' s1 = {1,3,5} print(s1) s1.add(100) print(s1) #以上代码执行结果如下: {1, 3, 5} {1, 3, 100, 5}