python基礎之面試常問

2022-08-24 21:57:07 字數 4891 閱讀 4370

參考:

python面試常問

目錄python記憶體管理(原博文——python記憶體管理)

python垃圾**

lambda作為乙個表示式,定義了乙個匿名函式。lambda表示式是起到乙個函式速寫的作用,允許在**內嵌入乙個函式的定義。例如:

func1 = lambda x,y:x+y

def func2(x,y):

return x+y

func1和func2其實作用相同。

lambda的優點是**比較簡潔,缺點是易讀性不好。

菜鳥教程——python內建函式

map()

map()會根據提供的函式對指定序列做對映。第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。

map(function, iterable,...)
返回值:python 2.x返回列表,python3.x返回迭代器。

以python3為例:

a = map(lambda x:x**2,[1,2,3,4])

print(a)

print(list(a))

輸出:

[1, 4, 9, 16]
filter()

filter()函式用於過濾序列,過濾掉不符合條件的元素,返回乙個迭代器物件,如果要轉換為列表,可以使用 list() 來轉換。

該接收兩個引數,第乙個為函式,第二個為序列,序列的每個元素作為引數傳遞給函式進行判,然後返回 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()

reduce()函式也是python內建的乙個高階函式。reduce()函式接收的引數和 map()類似,乙個函式 function,乙個可迭代物件,但行為和 map()不同,reduce()傳入的函式必須接收兩個引數,reduce()對list的每個元素反覆呼叫函式f,並返回最終結果值。

在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()

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 支援三種不同的數值型別:

python數字型別轉換:

字串string菜鳥教程——python3字串

列表list菜鳥教程——python3列表

列表是最常用的python資料型別,它可以作為乙個方括號內的逗號分隔值出現。列表的資料項不需要具有相同的型別建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。

其他的參見上面的鏈結。

元組tuple菜鳥教程——python3元組

python 的元組與列表類似,不同之處在於元組的元素不能修改。

元組使用小括號(但是訪問元組中的元素用中括號,例如:tuple[0]),列表使用方括號。元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。

注意:元組中只有乙個元素時,需要在該元素後面加乙個逗號,如下:

tuple1 = (1)

tuple2 = (1,)

print(type(tuple1),type(tuple2))

輸出:

字典dict菜鳥教程——python3字典

集合set菜鳥教程——python3集合

原博文——python 深拷貝與淺拷貝

例如:

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中is和==的區別

python中物件包含的三個基本要素,分別是:id(身份標識)、type(資料型別)和value(值)。

例如:

a = [1]

c = [1]

print(a == c, a is c)

輸出:

true false
例如:

a = 2

c = 2

print(a == c, a is c)

輸出:

true true
菜鳥教程——python3迭代器與生成器

迭代器:

例項:

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 ...