非線性資料結構
-
-
- IPython的使用
-
- 特殊變量
- shell指令
- 魔術方法
- 封裝和解構
- 丢棄變量
- 練習
-
IPython的使用
特殊變量
_表示前一次輸出
__表示倒數第二次輸出
___表示倒數第三次輸出
_dh目錄曆史
_oh輸出曆史
shell指令
!command執行shell指令
!ls -l
!touch test.txt
files = !ls -l|grep py
魔術方法
使用%百分号開頭的,IPython内置的特殊方法
%開頭是line magic
%%開頭是cell magic
%alias定義一個系統指令的别名
alias ll ls -l
%time statement
-n 一個循環loop執行語句多少次
-r 循環執行多少次loop,取最好的結果
%%timeit setup_code
封裝和解構
t1 = (1,2) #定義為元組
t2 = 1,2 #講1和2封裝成元組
type(t1)
type(t2)
a,b = b,a
右邊封裝,左邊解構
t1,t2,*t3,t6,t7=set(range(10))
t3
[‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’]
丢棄變量
下劃線_是合法辨別符,可作為有效變量,不想被使用的變量可定義為_
lst =[1,2,3,4]
onenum,*_,lastnum=lst
print(onenum)
print(lastnum)
練習
從list1 = [1,[2,3,4],5]中,提取4出來
a,[*b,c],d =list1
or
_,[*_,a],_=list1
print(c)
從JAVA HOME=/usr/bin中取出位置資訊
s ="JAVA HOME=/usr/bin"
a,_,b=s.partition('=')
or
a,b=s.split('=')
冒泡法排序[1,9,8,5,6,7,4,3,2],封裝解構交換數字
list1=[1,9,8,5,6,7,4,3,2]
for i in range(9):
for j in range(8-i):
if list1[j] > list1[j+1]:
list1[j],list1[j+1]=list1[j+1],list1[j]
print(list1)