99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋果6袋
6
麥子學(xué)院

Python學(xué)習(xí)之dict與set

發(fā)布時(shí)間:2017-04-24 21:02  回復(fù):0  查看:1810   最后回復(fù):2017-04-24 21:02  

 本文和大家分享的主要是python開發(fā)dictset相關(guān)內(nèi)容,一起來(lái)看看吧,希望對(duì)大家學(xué)習(xí)和使用這部分內(nèi)容有所幫助。

  . dict的形式

  dict={

  key:value,

  key:value,

  key:value,

  ...

  }

  (1) dict是集合,len()可以計(jì)算集合的大小。

  (2) dict是用花括號(hào){}表示的,注意與list(用方括號(hào)[]表示)tuple(用元括號(hào)()表示)的區(qū)別

  (3) 最后一對(duì)鍵值末尾可以不加逗號(hào)

  注意一個(gè) key-value 算一個(gè)長(zhǎng)度

  訪問(wèn)dict

  (1)方法一

  1.方式:

  通過(guò) key 訪問(wèn) dict value。

  2.舉例:

  >>> d = {

  ...     'Adam': 95,

  ...     'Lisa': 85,

  ...     'Bart': 59

  ... }

  >>> print d['Adam']

  95

  3.注意:

  key是否正確,如不正確則會(huì)報(bào)錯(cuò):NameError

  解決方法:

  if 'Paul' in d:

  ...     print d['Paul']

  ...

  >>>

  如果 ‘Paul’ 不存在,if語(yǔ)句判斷為False,自然不會(huì)執(zhí)行 print d[‘Paul’] ,從而避免了錯(cuò)誤。

  (2)方法二

  1.方式:

  dict.get(key),key存在返回value,否則返回None

  2.舉例:

  >>> print d.get('Bart')

  59

  >>> print d.get('Paul')

  None

  .dict的特點(diǎn)

  (1) 速度快

  無(wú)論dict10個(gè)元素還是10萬(wàn)個(gè)元素,查找速度都一樣。而list的查找速度隨著元素增加而逐漸下降。

  缺點(diǎn):占用內(nèi)存大

  (2) 無(wú)序

  存儲(chǔ)的key-value序?qū)κ菦](méi)有順序的!這和list不一樣.

  d = {

  'Adam': 95,

  'Lisa': 85,

  'Bart': 59

  }

  打印時(shí):

  >>> print d

  打印的順序不一定是我們創(chuàng)建時(shí)的順序,而且,不同的機(jī)器打印的順序都可能不同,這說(shuō)明dict內(nèi)部是 無(wú)序 的,不能用dict存儲(chǔ)有序的集合。

  (3) 元素不可變

  作為 key 的元素必須不可變,value是否可變無(wú)所謂。

  list是可變的,就不能作為 key

  {

  '123': [1, 2, 3],  # key 是 str,valuelist

  123: '123',       # key 是 intvalue 是 str

  ('a', 'b'): True

  # key 是 tuple,并且tuple的每個(gè)元素都是不可變對(duì)象,value是 boolean

  }

  注一般key用字符串表示,因?yàn)橛闷饋?lái)方便.

  (4) key是唯一的

  dict的作用是建立一組 key 和一組 value 的映射關(guān)系,則dictkey是不能重復(fù)的。

  .dict的更新

  方式:

  通過(guò)dict[key]=value

  原因:dict是 可變的

  舉例:

  >>> d = {

  'Adam': 95,

  'Lisa': 85,

  'Bart': 59

  }

  >>> d['Paul'] = 72 #通過(guò)dict[key]=value

  >>> print d

  {'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}

  注意:如果 key 已經(jīng)存在,則賦值會(huì)用新的 value 替換掉原來(lái)的 value

  .dict的遍歷

  方式:

  for key in dict的方式

  舉例:

  >>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

  >>> for key in d:

  ...     print key

  ...

  Lisa

  Adam

  Bart

  . set

  為什么要用set:

  有的時(shí)候,我們只想要 dict 的 key,不關(guān)心 key 對(duì)應(yīng)的 value,目的就是保證這個(gè)集合的元素不會(huì)重復(fù),這時(shí),set就派上用場(chǎng)了。

  set 持有一系列元素,這一點(diǎn)和 list 很像,但是set的元素沒(méi)有重復(fù),而且是無(wú)序的,這點(diǎn)和 dict 的 key很像。

  set的適用場(chǎng)合:

  判斷是否存在

  (1)set的創(chuàng)建

  方式:調(diào)用 set() 并傳入一個(gè) list,list的元素將作為set的元素

  >>> s = set(['A', 'B', 'C'])

  >>> print s

  set(['A', 'C', 'B'])

  注意:set內(nèi)部存儲(chǔ)的元素是無(wú)序的。

  (2)set的特點(diǎn)

  1.set不能包含重復(fù)的元素

  >>> s = set(['A', 'B', 'C', 'C'])

  >>> print s

  set(['A', 'C', 'B'])

  >>> len(s)

  3

  結(jié)果顯示,set會(huì)自動(dòng)去掉重復(fù)的元素,原來(lái)的list4個(gè)元素,但set只有3個(gè)元素。

  2.不存儲(chǔ)value

  判斷一個(gè)元素是否在set中速度很快。

  3.key不可變

  4.無(wú)序

  (3)set的訪問(wèn)

  因?yàn)?/span>set存儲(chǔ)的是無(wú)序集合,所以我們只能判斷一個(gè)元素是否在set中。

  >>> s = set(['Adam', 'Lisa', 'Bart', 'Paul'])

  >>> 'Bart' in s

  True

  >>> 'Bill' in s

  False

  (4)set的遍歷

  方式:通過(guò) for 循環(huán)實(shí)現(xiàn)。

  >>> s = set(['Adam', 'Lisa', 'Bart'])

  >>> for name in s:

  ...     print name

  ...

  Lisa

  Adam

  Bart

  (5)set的更新

  1.添加:setadd()方法

  >>> s = set([1, 2, 3])

  >>> s.add(4)

  >>> print s

  set([1, 2, 3, 4])

  注意:如果添加的元素已經(jīng)存在于set中,add()不會(huì)報(bào)錯(cuò),但是不會(huì)加進(jìn)去

  2.刪除:setremove()方法

  >>> s = set([1, 2, 3, 4])

  >>> s.remove(4)

  >>> print s

  set([1, 2, 3])

  如果刪除的元素不存在set中,remove()會(huì)報(bào)錯(cuò)

  用add()可以直接添加,而remove()前需要判斷。

 

 

來(lái)源:簡(jiǎn)書


您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?