參考:
python面試常問
目錄python記憶體管理(原博文——python記憶體管理)
python垃圾**lambda作為乙個表示式,定義了乙個匿名函式。lambda表示式是起到乙個函式速寫的作用,允許在**內嵌入乙個函式的定義。例如:菜鳥教程——python內建函式func1和func2其實作用相同。func1 = lambda x,y:x+y
def func2(x,y):
return x+y
lambda的優點是**比較簡潔,缺點是易讀性不好。
map()
map()會根據提供的函式對指定序列做對映。第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。filter()返回值:python 2.x返回列表,python3.x返回迭代器。map(function, iterable,...)
以python3為例:
輸出:a = map(lambda x:x**2,[1,2,3,4])
print(a)
print(list(a))
[1, 4, 9, 16]
filter()函式用於過濾序列,過濾掉不符合條件的元素,返回乙個迭代器物件,如果要轉換為列表,可以使用 list() 來轉換。reduce()該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 true 或 false,最後將返回 true 的元素放到新列表中。
例項:# 第乙個引數是判斷函式,第二個引數是可迭代物件
filter(function, iterable)
輸出:a = filter(lambda x:x%2==0,[1,2,3,4])
print(a)
print(list(a))
[2, 4]
reduce()函式也是python內建的乙個高階函式。reduce()函式接收的引數和 map()類似,乙個函式 function,乙個可迭代物件,但行為和 map()不同,reduce()傳入的函式必須接收兩個引數,reduce()對list的每個元素反覆呼叫函式f,並返回最終結果值。sorted()在python3中,reduce()函式已經從全域性函式中移除了,放在fucntools,所以我們首先得匯入從fucntools中匯入reduce()函式。
例項:reduce(function, iterable)
輸出:from functools import reduce
sum = reduce(lambda x,y:x+y,[1,3,5,7,9])
print(sum)
25
sorted()函式對所有可迭代的物件進行排序操作。sort與sorted的區別:
sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。
list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。
sorted(iterable, key=none, reverse=false)
例項:
nums = [[2,1],[3,4],[5,2],[4,10]]
# 將二維陣列按第一列逆序排列
sorted(nums, key = lambda x:x[0], reverse = true)
輸出:
[[5, 2], [4, 10], [3, 4], [2, 1]]
數字number菜鳥教程——python3數字
python 支援三種不同的數值型別:字串string菜鳥教程——python3字串 列表list菜鳥教程——python3列表python數字型別轉換:
列表是最常用的python資料型別,它可以作為乙個方括號內的逗號分隔值出現。列表的資料項不需要具有相同的型別建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。元組tuple菜鳥教程——python3元組其他的參見上面的鏈結。
python 的元組與列表類似,不同之處在於元組的元素不能修改。字典dict菜鳥教程——python3字典 集合set菜鳥教程——python3集合 原博文——python 深拷貝與淺拷貝元組使用小括號(但是訪問元組中的元素用中括號,例如:tuple[0]),列表使用方括號。元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。
注意:元組中只有乙個元素時,需要在該元素後面加乙個逗號,如下:
輸出:tuple1 = (1)
tuple2 = (1,)
print(type(tuple1),type(tuple2))
例如:原博文——python中is和==的區別輸出:import copy
a = [1, [1,2]]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
print(b is a, c is a, d is a)
a[1][1] = 3
print(a, b, c, d)
true false false
[1, [1, 3]] [1, [1, 3]] [1, [1, 3]] [1, [1, 2]]
python中物件包含的三個基本要素,分別是:id(身份標識)、type(資料型別)和value(值)。菜鳥教程——python3迭代器與生成器例如:
輸出:a = [1]
c = [1]
print(a == c, a is c)
例如:true false
輸出:a = 2
c = 2
print(a == c, a is c)
true true
迭代器:
例項:生成器:輸出:a =[1, 2, 3, 4]
b = iter(a)
print(type(b))
while true:
try:
print(next(b))
except:
print('over')
break
123
4over
在 python 中,使用了 yield 的函式被稱為生成器(generator)。跟普通函式不同的是,生成器是乙個返回迭代器的函式,只能用於迭代操作,更簡單點理解生成器就是乙個迭代器。在呼叫生成器執行的過程中,每次遇到 yield 時函式會暫停並儲存當前所有的執行資訊,返回 yield 的值, 並在下一次執行 next() 方法時從當前位置繼續執行。呼叫乙個生成器函式,返回的是乙個迭代器物件。
例項:
def helper(n):
i = 0
while i輸出:
01234
over
python基礎面試常問程式設計問題
求數值以內的質數,合數及個數 質數 defzhishu number num 0for i in range 2 number 1 k true for j in range 2 i if i j continue if i j 0 k false break if k true print d i...
python面試 Python面試常問的10個問題
很多人想找python工作,面試往往在基礎知識點採坑了 ps 另外很多人在學習python的過程中,往往因為沒有好的教程或者沒人指導從而導致自己容易放棄,為此我建了個python交流.裙 一久武其而而流一思 數字的諧音 轉換下可以找到了,裡面有最新python教程專案可拿,不懂的問題多跟裡面的人交流...
Python基礎 面試常考題
python強大的功能 a i for i in range 1000 print a b a i i for i in range len a 輸出1,5,9 b a i 2 i for i in range len a 輸出 1,5,7 print b 金典題目 a 2 j 1 i j for ...