天天看點

非線性資料結構---IPython的使用

非線性資料結構

      • 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)
           

繼續閱讀