知乎上看到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.列表取重2.如何實現 "1,2,3" 變成 ["1","2","3"]alist = [1,2,3,1,2]
#定義個空列表接收取重後的元素
alist_a =
#遍歷取重的列表
for i in alist:
#判斷如果元素沒有在新列表裡就新增進去,如果在就不新增
if i not in alist_a:
print(alist_a)
s = "1,2,3"3.給定兩個 list,a 和 b,找出相同元素和不同元素l_s = s.split(',')#通過str的split()方法返回分割後的字串列表
print(l_s)
list_a = [1, 2, 3, 4, 5]4.[[1,2],[3,4],[5,6]]一行**展開該列表,得出[1,2,3,4,5,6]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)
l = [[1,2],[3,4],[5,6]]5.合併列表[1,5,7,9]和[2,2,6,8]l_l = [x for i in l for x in i]#使用列表推導試
print(l_l)
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...