1、python的封装与解构
1.1、封装
# 封装是将默认一些操作封装为某种数据结构;
- 将多个值使用逗号分割,组合在一起;
- 本质上返回一个元组,只是省略了小括号;
- pyhton的语法特性,被其他语言借鉴;
t1=(1,2) # 定义元组 t2=1,2 # 将1和2封装成元组
1.2、解构
# 把线性数据的元素解开,并顺序的赋值给其他变量;
# 左边接收的变量数要和右边解开的元素个数一致;
lst=[1,2,3] a,b,c=lst print(a,b,c) # ==> 1 2 3 a,b={'x':1,'y':2} print(a,b) # ==> x y # a,b={1,2,3} # 报错too many values to unpack (expected 2) # print(a,b) [a,b]=1,2 print(a,b) # ==> 1 2 # 使用*变量名接收,但不能单独使用 # 被*变量名接收后组成一个列表 lst=list(range(5)) a,*b,c=lst print(a,b,c) # ==> 0 [1, 2, 3] 4
1.3、丢弃变量
# 丢弃变量:是一个不成文的约定,并不是标准;如果不关心一个变量(或者不需要调用它)就可以定义该变量的名字为'_';
# '_'是一个合法的标识符,也可以作为一个有效的变量使用;
lst=list(range(5)) a,*_,c=lst print(a,c) # ==>0 4 print(_) # ==> [1, 2, 3]
# 练习:实现冒泡和选择排序(基本实现)
l=[1,9,8,5,6,7,4,3,22] for i in range(len(l)): flag=False for j in range(len(l)-1): if l[j]>l[j+1]: l[j],l[j+1]=l[j+1],l[j] flag=True if not flag: break print(l) ''' 运行结果: [1, 3, 4, 5, 6, 7, 8, 9, 22] '''
for i in range(len(l)): maxindex=i for j in range(i+1,len(l)): if l[j] > l[maxindex]: maxindex=j if maxindex !=i: l[i],l[maxindex]=l[maxindex],l[i] print(l)