天天看點

python 2.7 資料結構: 基礎面試總結

python 2.7 資料結構: 基礎面試總結

python中基礎的資料類型包括:

  1 Number(數字)

  2 String(字元串)

  3 List(清單)

  4 Tuple(元組)

  5 set(集合)

  6 Pictionary(字典)

按照可變資料和不可變資料來區分:

  不可變資料(3個):Number(數字),String(字元串),Tuple(元組)

可變資料(3個):List(清單),Dictonary(字典),set(集合)

建立方式:

  建立清單: listT=[1,2,3,4,5]

  建立元組:tup2=(1,2,3,4,5)

  建立字典:dict2={"abc":123,"def":789}

  建立集合:student={'Tom','Jim','Mary'}

清單:清單中元素的類型可以不相同,它支援數字,字元串甚至可以包含清單(所謂嵌套)【插入資料可重複,資料不唯一】

listT=[1,"2",(3,4,5,6),[7,8,9],{"10":11},{12,13,14}]    #清單可以存儲資料類型:數字,字元,元組,清單,字典,set 

print listT #得:[1, '2', (3, 4, 5, 6), [7, 8, 9], {'10': 11}, set([12, 13, 14])]      

元組:元組(tuple)與清單類似,元組不能二次指派。【元組本身是隻讀對象,如果元組中的對象是可變類型資料,可變類型資料依然可以修改】

tuple=(1,"2",(3,4,5,6),[7,8,9],{"10":11},{12,13,14})    #元組可以存儲資料類型:數字,字元,元組,清單,字典,set
print tuple
print tuple[0]
print tuple[3]
tuple[3][0]=77
print tuple[3]

一下為輸出測試結果:      

#(1, '2', (3, 4, 5, 6), [7, 8, 9], {'10': 11}, set([12, 13, 14]))

# 1

#[7, 8, 9]

#[77, 8, 9]

字典:清單是有序的對象集合,字典是無序的對象集合【鍵必須是唯一的,但值則不必;值可以取任何資料類型,但鍵必須是不可變的】

dict2={1:1,"2":"2",(3):(3)}
print dict2   #得 {3: 3, 1: 1, '2': '2'} 元組類型發生了改變
      
dict2={1:1,"2":"2",(3,2):(3,2)}

print dict2  #{1: 1, (3, 2): (3, 2), '2': '2'} 元組未發生改變      
dict2={1:1,"2":"2",(3,2):(3,2),4:[5],"5":{"66":"66"},(3):{"77","88"}}  #鍵必須是不可變的,值可以是任何類型:依次為數字,字元,元組,清單,字典,set集合

print dict2 #得 {1: 1, (3, 2): (3, 2), 3: set(['77', '88']), 4: [5], '2': '2', '5': {'66': '66'}}      

集合:set是一個無序的不重複元素序列

set={1,"2",(3,2)}
print set  # 得:set([1, (3, 2), '2']) ;看到資料結構後着實讓人發現原來set集合内部結構也是一個清單。這就不難了解為啥可以用set給list清單去重      
set={1,"2",(3,2)}      #集合隻能存放不可變類型,可變類型放入後會報錯

print set

list=[4,5,6]

dict2={"9":"10"}

set={6,7,8}

#set.add(list)   #TypeError: unhashable type: 'list'

#set.add(dict2)  #TypeError: unhashable type: 'dict'

#set.add(set)     #TypeError: unhashable type: 'set'      

面試常問問題:

  1  list清單可以存儲的類型結構:數字,字元串,元組,清單,字典,set

  2  tuple元組可以存儲資料類型:數字,字元,元組,清單,字典,set

  3  dict字典可以存儲資料類型:分别說:鍵(不可變),值(數字,字元,元組,清單,字典,set集合)

  4  set集合可以存儲資料類型:不可變類型(數字,字元,元組)

原文位址

https://www.cnblogs.com/renguiyouzhi/p/10476060.html