python0.7-----元組和字典
元組:不可變的列表
優點:安全,對於數據的定義,能用元組就用元組,因為它不可變。
創建空的元組:
tuple1=()
創建帶有不同類型元素的元組:
tuple2=(1,1.1,’good’,true,None,(1,2,3),[1,2,3,4],{1:2,3:4})
創建只有一個元素的元祖
tuple3=(1,) 記住:一定要叫上這個逗號,不然系統會認為tuple3是整數類型
增:
無,因為元組不可變
刪:
del tuple3
改:
元組元素是不能被修改的,但若元組的元素是列表或者字典,由於這兩種類型存在元組裏面的是地址,因此只要不改變放在元組裏面的列表或者字典的地址,而改變裏列表或者字典的元素,對於元組列說,其元素是沒有修改的。因此,對於元組的列表元素或者字典元素,是可以修改的。
記住:只能修改列表的元素。如果修改整個列表,列表的引用就會發生變化,那麽元組裏面的列表地址就會發生變化,就會發生錯誤。
例如:
list1=[123,123,111]
print(id(list1))
list1[0]=1 #只修改列表元素,列表的地址沒有發生改變
print(id(list1))
list1=[11,11] #這是在修改列表的引用,會開辟新的內存空間,引用的列表地址會發生變化
print(id(list1))
查:
格式:元組名[下標]
記住:下標不可以越界
下標可以是負數:例如:元組tuple3的長度為5,那麽tuple3[-1]表示最後一個元素,tuple[-2]表示倒數第二個,tuple[-5]表示第一個元素
例如:tuple2[4] 查得None
對元組的操作:
例如:
t1=(1,2,3)
t2=(4,5,6)
元組的連接:t1+t3 得到一個元組:(2,2,3,4,5,6)
元組的重復:t1*3 得到一個元組:(1,2,3,1,2,3,1,2,3)
判斷元素是否在元組中: 元素1 in 元組名1 若元素1存在於元組1,則返回True,否則返回False
元組的截取:
格式:元組名[[start]:[end]] :截取元組下標[start,end)裏面的子元組
二維元組:
t1=((1,2),(3,4),(5,6),(7,8)) 訪問t1[下標][下標]
元組的方法:
len(元組名):返回元組中元素的個數
max(元組名):返回元組中的最大值
min(元組名):返回元組中的最小值
tuple(列表名):將列表轉化為元組
字典:
概述:使用鍵值(key-value)存儲,具有極快的查找和插入和刪除速度。不像列表,列表的元素越多,查找速度就越慢,而字典跟元素的數量無關。但是字典相比較列表,字典要多消耗內存存儲key。字典是無序的,不能用下標查找,例如dict[index]就是錯誤的訪問方法。
字典的形式:
dict1={key1:value1,key2:value2}
key的特性:
一:字典中的key必須唯一。
二:key必須是不可變的對象。例如字符串,整數可作為key。list可變,不能作為key。
增,改:
dict1[key]=value :在dict1中添加key:value,如果key存在,則覆蓋原來存在的key-value,其實就是修改key對應的value的值。
刪:
dict1.pop(key):刪除key對應的key-value。
查:
格式: 字典名[key]
當key不存在時,這種方式的訪問就會報錯。
dict1.get(key)也是訪問字典dict1的key對應的value,但是如果key不存在,返回None。
dict1.value():返回一個列表,列表的內容為所有的value值。
dict1.items():將字典轉變成為列表,列表的元素是元組,元組的形式為:(key,value)。
遍歷字典:
一:遍歷key
for key in dict1:
print(key,dict[key])
二:遍歷value
for value in dict1.value():
print(value)
三:遍歷key-value
for key,value in dict1.items():
print(key,value)
enumerate(dict1):把key-value的key用數字代替。改變成:0:value1,1:value2,....,n:valuen的形式
enumerate(list1):從0開始在每個list1元素前面加上一個數字。
python0.7-----元組和字典