Python學習筆記(3)

2021-08-19 17:58:16 字數 3604 閱讀 8317

重要的資料型別dict和set

dict通過key 查詢value(key和value關聯)

花括號表示這是乙個dict,然後按照key:value,寫出來即可。最後乙個key:value的都好可以省略

注意: 單元素的tuple必須在後面多家加乙個逗號

dict最後的逗號可以省略

由於dict也是集合,len()函式可以計算任意集合的大小

>>>len(d)

3               注意:乙個key-value算乙個,因此,dict大小為3

訪問dict

可以簡單的使用d[key] 的形式來查詢對應的value,這和list很像,不同之處是,list必須使用索引返回對應的元素,而dict直接使用key(通過key訪問dict的value,只要key存在,dict就返回對應的value,如果key不存在,會直接報錯:keyerror)

dict 的特點:

知識點:dict查詢速度快。list查詢速度隨著元素增加而逐漸下降。

缺點:記憶體占用大。list慢但記憶體占用小

dict的第一特點是查詢速度快,無論dict有10個元素還是10萬個元素,查詢速度都一樣。而list的查詢速度隨著元素增加而逐漸下降

不過dict的查詢速度快不是沒有代價的,dict的缺點是占用記憶體大,還會浪費很多內容,而list正相反,占用記憶體小,但是查詢速度慢

dict的第二個特點是儲存的key-value序對視沒有順序的!這和list不同(dict是按key查詢的,所以在乙個dict中,key不能重複)

例如:d=

>>>print d

列印的順序不一定是我們建立時的順序,而且不同的機器列印的順序都可能不同,這說明:dict內部是無序的,不能用dict 儲存有序的集合

dict的第三個特點是作為key的元素倪新雨不可變,python的基本型別如字串、整數、浮點數都是不可變的,都可以作為key。但是list是可變的,就不能作為key

不可變這個限制僅作用於key,value是否可變無所謂

更新dict

dict是可變的,即我們可以隨時王dict 中新增新的key-value.例如:

>>>d[『paul』]=72

>>>print d

如果key已經存在,則複製會用心的value替換原來的value

>>>d[『bart』]=60

>>>print d

遍歷dict

由於dict也是乙個集合,所以遍歷dict和遍歷list類似,都可以通過for迴圈實現

直接使用for迴圈可以便利dict的key

>>>d=

>>>for key in d:

…     print key

…adam

lisa

bart

由於通過key可以獲取對應的value,因此,在迴圈體內,可以獲取到value的值

d=for key in d:

print key+」:」,d[key]

執行結果:

lisa: 85

adma: 95

bart: 59

setdict的作用是建立一組key和一組value的對映關係,dict的key是不能重複的

set持有一系列元素,這一點和list很像,但是set的元素沒有重複,而且是無序的,這點和dict的key很像

建立set的方式是呼叫set()並傳入乙個list,list的元素將作為set的元素

>>>s=set([『a』 , 』b』 , 』c』])

>>>print s

set([『a』 ,』c』,』b』 ])

注意:可以看出列印的順序與原始的list順序有可能不同,因為set內部儲存的元素是無序的

>>>s=set([『a』 , 』b』 , 』c』 , 『c』])

>>>print s

set([『a』 ,』c』,』b』 ])

>>>len(s)

3結果顯示:因為set不能包含重複的元素,所以set會自動去掉重複的元素,原來的list有4個元素,但是set只有3個

程式設計任務:請用set表示班裡的4位同學:adma,lisa,bart,paul

>>>s=set([『adma』,』lisa』,』bart』,』paul』])

print s

執行結果:

set([『lisa』,』paul』,』adma』,』bart』])

訪問set

由於set儲存的是無序集合,所以我們沒法通過索引來訪問,訪問set中的某個元素實際上就是判斷乙個元素是否在set中,可以用in操作符判斷

>>>s=set([『adma』,』lisa』,』bart』,』paul』])

>>>』bart』 in s

true

>>>』bill』 in s

false

>>>』bart』 in s

false

注意:大小寫(區分大小寫)

set的特點:

set的內部結構和dict很像,唯一區別是不儲存value,因此,判斷乙個元素是否在set中速度很快,set儲存的元素和dict的key類似,必須是不變物件,因此,任何可變物件是不能放入set中的。最後,set儲存的元素也是沒有順序的

例如:判斷使用者輸入是否是乙個有效的星期?

weekdays=set([『mon』,』tue』,』wed』,』thu』,』fri』,』sat』,』sun』])

x=』???』         #使用者輸入的字串

if x in weekdays:

print 『input ok』

else

print 『input error』

遍歷set

由於set也是乙個集合,所以,遍歷set和遍歷list類似,都可以通過for迴圈實現

>>>s=set([『adma』,』lisa』,』bart』])

>>>for name in s:

…print name

…lisa

adma

bart

注意:for迴圈在遍歷set是,元素的順序和list的順序很可能不同

更新set(add ,remove)

由於set儲存的是一組不重複的無序元素,因此,更新set主要做兩件事:

。是把新的元素新增到set中

。是把已有元素從set中刪除(前提是元素存在)

所以用add()可以直接新增,而remove()前需要判斷

python學習筆記3

1 字串的格式化操作 format variable format 是格式的樣式,variable 是要被格式化的變數 format 有如下幾種形式 o 將數值轉換為八進位制 x 將數值轉換為十六進製制 d 整數轉換符號 s 字串轉換符號 如下 o 100 144 o 100 加入乙個 號可輸出標準...

python 學習筆記3

2014 10 23 三種內建的資料結構 列表 元組和字典 list len list list.sort 修改列表本身,而不是返回乙個修改後的列表 列表時可變的,字串不可變 for item in list 遍歷 del list 0 刪除專案,自動補齊。print語句的結尾的逗號消除列印的換行符...

Python學習筆記3

條件和迴圈語句 生成隨機數的函式,此處說明一下,python是通過乙個方程來產生隨機數的,所以這些隨機數並不是真正隨機的,產生他們的方式叫做偽隨機。載入模組,本人理解模組類似c裡的庫,模組 module 含有可供其他程式使用的 的檔案,這些模組通常是按照一定的相關性進行組織的,載入模組使用 impo...