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}
add(elem)         #增加一个元素到set中,如果元素存在,什么都不做

相关文章: