#1.經典面試題1 滑動序列
#1.可滑動額序列,自定義乙個函式,根據引數n的值,變成對應個元素的容器(zip)
listvar=[1,2,3,4,5,6,7,8,9]
n=2listvar=[[1,2],[3,4],[5,6],[7,8]]
n=3listvar=[[1,2,3],[4,5,6],[7,8,9]]
n=4listvar=[[1,2,3,4],[4,6,7,8]]
#利用列表的切片和zip函式構造滑動序列
#n=2時
#listvar[0::2] listvar[1::2] i#zip(list1,list2…listn)=>zip(*args)
#print(*[listvar[i::4]for i in range (2)])
listvar=[1,2,3,4,5,6,7,8,9]
def myfunc(lst,n):
return list( map(list,zip(*[lst[i::n] for i in range(n)])))
#print(myfunc(listvar,2))
#2 經典面試題2
#引數時可變的量的預設賦值
def func():
return [lambda x:i*x for i in range(4)]
res=[m(2)for m in func()]
#函式定義時不執行**裡面的變數因此i在定義時不會參與計算,因區域性i被內函式呼叫,並且被內函式返回,所以這個函式時閉包函式,根據閉包函式可知區域性變數i生命週期得到延長,i=3,定義完這個函式之後i的值就是3
#呼叫時i=3 [m(2) in func()] =>[6,6,6,6]
def add(a,b):
return a+b
def test():
for i in range(4):
yield i
g=test()
for n in [2,10]:
g=(add(n,i)for i in g)
print(type(g))
print("<*********>")
print(list(g))
『』』在迴圈的時候,定義了2個生成器表示式,在定義不會去執行表示式當中的內容
迴圈完畢,此刻n就是10,然後開始呼叫生成器g
這個時候迴圈了2次生成器,可以簡寫成
g=test()
g=(add(n,i) for i in g)
g=(add(n,i)for i in g )
每次獲取的g都是上乙個g對應的範圍
依次求職即可
(1)迴圈生成器時候,是迴圈了2次
(2)迴圈呼叫時,n的值已經是10
(3)乙個函式經過多次定義,函式func呼叫時只執行最後一次的定義
『』』
python面試經典題 Python經典面試題
1 邏輯運算子的運算 and or not 優先順序,not and or print not 2 1 and 3 4 or 4 5 and 2 1 and 9 8 or 7 6 f x or y x true,則返回x print 1 or 2 1 print 3 or 2 3 print 0 o...
Python 經典演算法題
概念 動態規劃過程是 每次決策依賴於當前狀態,又隨即引起狀態的轉移。乙個決策序列就是在變化的狀態中產生出來的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。演算法關鍵點 1 最優化原理,也就是最有子結構性質。這指的是乙個最優化策略具有這樣的性質,無論過去狀態和決策如何,對前面的決策所形成的...
Python經典入門100題 41 50題
例項041 類的方法與變數 題目 模仿靜態變數的用法。deffunc i 0print i i 1class cls i 1def dummy self print self.i self.i 1cls cls for i in range 2 func cls.dummy 例項042 變數作用域 ...