python列表面試題練習

2021-10-02 00:14:56 字數 1206 閱讀 1674

知乎上看到180個python面試題,把列表的拿出來練習下

1.已知 alist = [1,2,3,1,2],對 alist 列表元素去重,寫出具體過程。

2.如何實現 "1,2,3" 變成 ["1","2","3"]

3.給定兩個 list,a 和 b,找出相同元素和不同元素

4.[[1,2],[3,4],[5,6]]一行**展開該列表,得出[1,2,3,4,5,6]

5.合併列表[1,5,7,9]和[2,2,6,8]

#1.列表取重

alist = [1,2,3,1,2]

#定義個空列表接收取重後的元素

alist_a =

#遍歷取重的列表

for i in alist:

#判斷如果元素沒有在新列表裡就新增進去,如果在就不新增

if i not in alist_a:

print(alist_a)

2.如何實現 "1,2,3" 變成 ["1","2","3"]

s = "1,2,3"

l_s = s.split(',')#通過str的split()方法返回分割後的字串列表

print(l_s)

3.給定兩個 list,a 和 b,找出相同元素和不同元素

list_a = [1, 2, 3, 4, 5]

list_b = [4, 5, 6, 7, 8]

list_c = #相同元素列表

list_d = #不同元素列表

for i in list_a:

if i in list_b:#判斷如果a列表的元素在b列表就新增到c列表裡

print(list_c)

for i in list_a:

if i not in list_b:#判斷如果a列表的元素不在b列表就新增到d列表

print(list_d)

4.[[1,2],[3,4],[5,6]]一行**展開該列表,得出[1,2,3,4,5,6]

l = [[1,2],[3,4],[5,6]]

l_l = [x for i in l for x in i]#使用列表推導試

print(l_l)

5.合併列表[1,5,7,9]和[2,2,6,8]

l1 = [1,5,7,9]

l2 = [2,2,6,8]

l3 = l1 + l2

print(l3)

鏈表面試題

不改變鍊錶結構,從尾到頭列印單鏈表 遞迴實現 void printlistrevers recursively plist phead printf d phead data 當鍊表非常長的時候,遞迴實現的會導致函式呼叫層級很深,可能導致呼叫棧溢位。用棧不會出現此類情況,顯然用棧實現 的魯棒性會好一...

鏈表面試題

從尾到頭列印單鏈表 棧 遞迴 從尾到頭列印鍊錶 includevoid printtailtohead listnode head while s.empty 空間複雜度o n void printtailtoheadr listnode head cout data 刪除乙個無頭單鏈表的非尾結點 ...

鏈表面試題

typedef int datatype typedef struct node node,pnode,plist void initlist plist pplist void display const plist plist void pushback plist pplist,datatyp...