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)
轉載于:https://www.cnblogs.com/soulgou123/p/9494315.html