在python編程當中,list 和 tuple,dict和set都是比較相似的兩種數據結構。在編程的過程中,經常容易把這兩種數據結構的一些方法給弄混了。為了在以后少出現一些混淆,因此我把這幾種數據結構的調用方法作了一個比較,以方便記憶(以下的對比是基于python2.7)。
1, List 和 tuple 的區別
初始化:list=[] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tuple=()#初始化后,整個tuple里元素的指向不可改變
索引:list[k] ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? tuple[k]
追加:list.append() ? ? ? ? ? ? ? ? ? ? ? ? ?tuple 不可追加,tuple大小不可再改變
輸出/刪除:list.pop(), list.pop(k) ? ? ?無
插入:list.insert(k,value) ? ? ? ? ? ? ? ? ?無
切片:list[start:stop:step] ? ? ? ? ? ? ? ?tuple[start:stop:step]
修改:list[k]=new_value ? ? ? ? ? ? ? ? ?tuple 的元素不可重新賦值
排序:list.sort()#修改原list,無返回 ? sorted(tuple)沒有tuple.sort()
? ? ? ? ?sorted(list)#返回一個新list
2 dict和set的區別
初始化:dict={} ? ; ?set=([iterable])
索引:dict[key] ? ?; ?set不支持索引
添加:dict[newkey]=newvalue ? ; set.add(key)
輸出(刪除):dict.pop(key) ? ; ? set.remove(key)
dict和set當中都沒有重復的key值,且key值必須是不可改變的對象
其他關于set的函數: a和set類型,b是可遍歷類型。a.union(b), a.difference(b), a.intersection(b), a.symmetric_difference(b), a.pop(value). &(intersection), ? ?|(union), ? ? ? -(difference) 這三個操作符只適用于兩個sets之間。