-
d = {'Alice': [50, 61, 66], 'Bob': [80, 61, 66], 'Candy': [88, 75, 90]}
for key in d:與for key in d.keys():的作用相同
dict提供values()函數,可以返回dict中所有的value。for key in d.values():
dict提供clear()函數,可以直接清除dict中所有的元素。
d.clear()
print(d) # ==> {}查看全部 -
d?=?{ ????'Alice':?45, ????'Bob':?60, ????'Candy':?75, ????'David':?86, ????'Ellena':?49 } ????value?=?d[key] ????if?value?>?60: ????????print(key,?value) #?==>?Candy?75 #?==>?David?86
第二種方法是通過dict提供的
items()
方法,items()
方法會返回dict中所有的元素,每個元素包含key和value。????if?value?>?60: ????????print(key,?value) #?==>?Candy?75 #?==>?David?86
?
查看全部 -
因為
d['Bob'] = 75
的緣故。
因此我們發現這個賦值語句其實有兩個功能:當key不存在時,往dict中添加對應的key: value元素。
當key存在時,會更新dict,用新的value替換原來的value。
查看全部 -
實際上,value可以是任意類型的元素,可以是list、tuple等,
d['Mimi'] = [72, 73]
d['Dodo'] = [88, 90]
print(d)如果Mimi、Dodo的第三次成績也出來了,分別是75,90,則可以先通過key把對應的value查詢出來,然后再往類型是list的value中添加第三次的成績。
d['Mimi'].append(75) d['Dodo'].append(90) print(d)
查看全部 -
dict提供通過key找到對應value的功能,通過
d[key]
的形式,就可以得到對應的value。d = {
??? 'Alice': 45,
??? 'Bob': 60,
??? 'Candy': 75,
??? 'David': 86,
??? 'Ellena': 49,
??? 'Gaven': 86
}
print(d['Bob']) # ==> 60
print(d['Alice']) # ==> 45除了使用這種方法,還有一種方法可以通過key來獲取對應的value,這種方法不會引起錯誤,dict本身提供get方法,把key當作參數傳遞給get方法,就可以獲取對應的value,當key不存在時,也不會報錯,而是返回None。
print(d.get('Alice'))?#?==>?45 print(d.get('Dodo'))?#?==>?None
因為通過get方法在代碼實現上更加簡單,且不會引起錯誤,因此更加推薦使用get方法來獲取dict的元素。
查看全部 -
但是使用兩個list,始終有些麻煩的,尤其是需要變換一個列表的順序后,另外一個列表也需要做同樣的變換,否則就可能出現對應不上的問題。
python的dict就是專門保存這種映射的,使用dict可以方便的保存“名字”->“成績”的映射。
在dict中,每一項包含一個key和一個value,key和value是一一對應的,在解決上面的問題中,我們可以使用名字作為key,成績作為value,那么dict的定義如下:d?=?{ ????'Alice':?45, ????'Bob':?60, ????'Candy':?75, ????'David':?86, ????'Ellena':?49 }
在定義里,我們使用花括號
{}
表示這是一個dict,然后key和value之間使用冒號:
分割,并且每一組key:value
的最后,以逗號,
表示這一組的結束。
我們也可以使用以下的方式定義一個dict。查看全部 -
對于組合數據類型,則不受這個約束。
T?=?(1,?'CH',?[3,?4])
這里T有三個元素,第一個元素是數字類型,第二個元素是字符串類型,第三個元素是列表類型的,我們嘗試修改第三個元素的數據。
T?=?(1,?'CH',?[3,?4]) L?=?T[2] print(L)?#?==>?[3,?4] #?嘗試替換L中的元素 L[1]?=?40 print(L)?#?==>?[3,?40] print(T)?#?==>?(1,?'CH',?[3,?40])
這個時候,我們發現,元組T中的第三個元素已經成功被改變了,這就有悖前面的定義,元組是不可改變的。那么這到底是為什么呢?
這是因為雖然tuple中的list元素改變了,但是tuple本身指向的list仍然是同一個list,list本身并沒有改變,改變的只是list里面的一個元素,這是tuple所約束不到的范圍。T?=?(1,?'CH',?[3,?4]) L2?=?[3,?40] #?嘗試替換tuple中的list T[2]?=?L2 #?報錯 Traceback?(most?recent?call?last): ??File?"<stdin>",?line?1,?in?<module> TypeError:?'tuple'?object?does?not?support?item?assignment
如果我們直接替換list,這也是不行的。
查看全部 -
改變優先級我們是通過
()
來實現的,這和元組的定義有沖突,這就解釋了前面只有一個元素的元組,為什么打印出來卻得到一個數字的結果了。
因為()
既可以表示tuple,又可以作為括號表示運算時的優先級,結果(1)
被Python解釋器計算出結果 1,導致我們得到的不是tuple,而是整數 1。
因此,要定義只有一個元素的tuple,需要在元素后面添加一個逗號,
接著,我們創建包含一個元素的tuple。
T?=?(1) print(T)?#?==>?1
T?=?(1,?) print(T)?#?==>?(1,?)
而對于多個元素的tuple,則加和不加這個逗號,效果是一樣的。
>>>?T?=?(1,?2,?3,) >>>?print(T)?#?==>?(1,?2,?3)
查看全部 -
count()方法
count()方法用來統計tuple中某個元素出現的次數。
T?=?(1,?1,?2,?2,?3,?3,?1,?3,?5,?7,?9) print(T.count(1))?#?==>?3 print(T.count(5))?#?==>?1
對于不存在的元素,count方法不會報錯,而是返回0,這是合理的,因為元組里面有0個不存在的元素。
T?=?(1,?1,?2,?2,?3,?3,?1,?3,?5,?7,?9) print(T.count(10))?#?==>?0
index()方法
index()方法可以返回指定元素的下標,當一個元素多次重復出現時,則返回第一次出現的下標位置。
T?=?(1,?1,?2,?2,?3,?3,?1,?3,?5,?7,?9) T.index(9)?#?==>?10 T.index(5)?#?==>?8 T.index(1)?#?==>?0?#?多次出現,返回第一次出現的位置
注意,index()方法和count()方法不一樣,當指定的元素不存在時,使用index()方法Python會報錯。
查看全部 -
輸入你的第一行Python代碼
print('Hello World')
,回車即可運行,第一次運行,有幾個需要注意的地方:注意在
Hello World
前后都有單引號'
print
和>>>
不可以有空格注意
(
、)
、'
、')
均為英文字符
查看全部 -
元組(tuple)和list一樣,也是一個有序容器,在元組中,同樣可以包含0個或者多個元素,并且也支持索引訪問、切片等操作。
定義元組的方式是使用小括號()
將元組內的元素括起來。但是,tuple和list不一樣的是,tuple是固定不變的,一旦變成tuple,tuple中的每一個元素都不可被改變,同時也不能再往tuple中添加數據,而list是可以的。
查看全部 -
包含 0 個元素的 tuple,也就是空tuple,直接用
()
表示:T?=?() print(T)?#?==>?()
查看全部 -
Tupe
元組(tuple)和list一樣,也是一個有序容器,在元組中,同樣可以包含0個或者多個元素,并且也支持索引訪問、切片等操作。
定義元組的方式是使用小括號()
將元組內的元素括起來。tuple和list可以互相轉換
但是,tuple和list不一樣的是,tuple是固定不變的,一旦變成tuple,tuple中的每一個元素都不可被改變,同時也不能再往tuple中添加數據,而list是可以的。
查看全部 -
列表list
添加
末尾添加 append
指定位置添加 insert(位置,元素)例如:insert(2,a)
刪除
pop()默認刪除列表的最后一個元素
pop()還可以接收一個參數,指定需要刪除的元素的位置。例如:pop(2)刪除第三個元素
查看全部 -
哈哈查看全部
舉報