日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型

發布時間:2024/10/8 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 字典是 Python 語言中唯一的映射類型。映射類型對象里哈希值(鍵) 和指向的對象(值)是一對一的關系.

2. 一個字典對象是可變的,它是一個容器類型,能存儲任意個數的 Python 對象,其中也包括其他容器類型。字典類型和序列類型容器類(列表、元組)的區別是存儲和訪問數據的方式不同。

3. 你所能獲得的有序集合只能是字典中的鍵的集合或者值的集合。

方法 Keys() 或 values() 返回一個列表,該列表是可排序的。

你還可以用 items()方法得到包含鍵、值對的元組的列表來排序。

由于字典本身是哈希的,所以是無序的。

4. 創建字典和給字典賦值

>>> dict1 = {}

>>> dict2 = {'name': 'earth', 'port': 80}

>>> dict1, dict2

({}, {'port': 80, 'name': 'earth'})

>> fdict = dict((['x', 1], ['y', 2]))

>>> fdict

{'y': 2, 'x': 1}

>>> fdict = dict((['x', 1], ['y', 2]))

>>> fdict

{'y': 2, 'x': 1}

>>> ddict = {}.fromkeys(('x', 'y'), -1)

>>> ddict

{'y': -1, 'x': -1}

5. 如何訪問字典中的值

>>> dict2 = {'name': 'earth', 'port': 80}

>>>> for key in dict2.keys():

... print 'key=%s, value=%s' % (key, dict2[key])

從 Python 2.2 開始, 你可以不必再用 keys()方法獲取供循環使用的鍵值列表了。 可以

用迭代器來輕松地訪問類序列對象(sequence-like objects),比如字典和文件。

>>> for key in dict2:

... print 'key=%s, value=%s' % (key, dict2[key])

6. 如果我們想訪問該字典中的一個數據元素,而它在這個字典中沒有對應的鍵,

將會產生一個KeyError錯誤:

檢查一個字典中是否有某個鍵的最好方法是用字典的 has_key()方法, 或者另一

種比較好的方法就是從 2.2 版本起用的,in 或 not in 操作符。 has_key() 方法將會在未來的Python 版本中棄用,所以用 in 或 not in 是最好的方法。

>>> 'server' in dict2 # 或 dict2.has_key('server')

False

7. 字典中的鍵必須是可哈希的, 所以數字和字符串可以作為字典中的鍵, 但是列表和其他字典不行。

>>> print 'host %(name)s is running on port %(port)d' %dict2

host venus is running on port 6969

8. 避免使用內建對象名字作為變量的標識符

請不要用 dict, list,file, bool, str, input, len 這樣的內建類型為變量命名.

9. 內建函數 hash()本身并不是為字典設計的方法,但它可以判斷某個對象是否可以做一個字典的鍵。將一個對象作為參數傳遞給 hash(), 會返回這個對象的哈希值。 只有這個對象是可哈希的,才可作為字典的鍵 (函數的返回值是整數,不產生錯誤或異常)。

如果用比較操作符來比較兩個數值,發現它們是相等的,那么即使二者的數據類型不同, 它

們也會得到相同的哈希值。

如果非可哈希類型作為參數傳遞給 hash()方法,會產生 TypeError 錯誤(因此,如果使用這樣的對象作為鍵給字典賦值時會出錯):

>>> hash([])

Traceback (innermost last): File "", line 1, in ?

TypeError: list objects are unhashable

10. 字典類型方法

dict.clear () 刪除字典中所有元素

dict.copy () 返回字典(淺復制)的一個副本

dict.fromkeys (seq,val=None)

創建并返回一個新字典,以 seq 中的元素做該字典的鍵,

val 做該字典中所有鍵對應的初始值(如果不提供此值,則默認為 None)

dict.get(key,default=None)

對字典 dict 中的鍵 key,返回它對應的值 value,

如果字典中不存在此鍵,則返回 default 的值(注意,參數 default 的默認值為 None)

dict.has_key(key)

如果鍵(key)在字典中存在,返回 True,

否則返回 False. 在 Python2.2版本引入 in 和 not in 后,此方法幾乎已廢棄不用了,但仍提供一個可工作的接口。

dict.items() 返回一個包含字典中(鍵, 值)對元組的列表

dict.keys() 返回一個包含字典中鍵的列表

dict.iter()

方法 iteritems(), iterkeys(), itervalues()

與它們對應的非迭代方法一樣,不同的是它們返回一個迭代子,而不是一個列表。

dict.popc(key[, default])

和方法 get()相似,如果字典中 key 鍵存在,刪除并返回 dict[key], 如果 key 鍵不存在,且沒有給出 default 的值,引發 KeyError 異常。

dict.setdefault(key,default=None)

和方法 set()相似,如果字典中不存在 key 鍵,

由 dict[key]=default 為它賦值。

dict.update(dict2) 將字典 dict2 的鍵-值對添加到字典 dict

dict.values() 返回一個包含字典中所有值的列表

11. 所有不可變的類型都是可哈希的,因此它們都可以做為字典的鍵。

一個要說明的是問題是數字:值相等的數字表示相同的鍵。換句話來說,整型數字 1 和 浮點數 1.0 的哈希值是相同的,即它們是相同的鍵。

12. 數學上, 把 set 稱做由不同的元素組成的集合,集合(set)的成員通常被稱做集合元素(setelements)。Python 把這個概念引入到它的集合類型對象里。集合對象是一組無序排列的可哈希的值.

13. 和其他容器類型一樣,集合支持用 in 和 not in 操作符檢查成員, 由 len() 內建函數得到集合的基數(大小), 用 for 循環迭代集合的成員。但是因為集合本身是無序的,你不可以為集合創建索引或執行切片(slice)操作,也沒有鍵(keys)可用來獲取集合中元素的值。集合(sets)有兩種不同的類型,可變集合(set) 和 不可變集合(frozenset)。

14. 集合被創建的唯一方法 - 用集合的工廠方法 set()和 frozenset():

>>> s = set('cheeseshop')

>>> s

set(['c', 'e', 'h', 'o', 'p', 's'])

>>> t = frozenset('bookshop')

>>> t

frozenset(['b', 'h', 'k', 'o', 'p', 's'])

>>> s.add('z')

>>> s.update('pypi')

>>> s.remove('z')

>>> s -= set('pypi')

>>> s | t

>>> s & t

>>> s - t

>>> s ^ t

分享到:

2010-03-11 20:38

瀏覽 1640

評論

總結

以上是生活随笔為你收集整理的python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品欧美精品系列 | 欧美a性 | 99精品人妻无码专区在线视频区 | 99久久久国产精品 | 91久久一区二区 | 美女一区二区三区 | av毛片大全 | 肉丝超薄少妇一区二区三区 | 国产精品永久免费视频 | 久久77777 | 亚洲精品色午夜无码专区日韩 | 干美女av | 醉酒壮男gay强迫野外xx | 精品xxxxx | 日本人の夫妇交换 | 国产精品无码午夜福利 | 爱爱福利社 | 一区二区三区在线观看视频 | cao死你 | 欧美日韩大片在线观看 | 秋霞免费av | 在线观看99| 国产伊人av | a天堂中文在线观看 | 天天插天天搞 | 美女在线一区 | 天堂av一区二区 | 91网在线 | 日本一本久久 | 视频一区二区在线观看 | 国产视频精品免费 | 97偷拍视频| 亚洲性综合 | 国产顶级毛片 | 高清av网址 | 久久av在线 | 丰满人妻综合一区二区三区 | 久久网国产 | 在线观看网站污 | wwwxxxx日本 | 成人福利网 | av制服丝袜 | 欧美色涩| 91传媒在线视频 | 国产一级特黄视频 | 黄色在线一区 | 粉嫩视频在线观看 | 少妇熟女高潮流白浆 | 亚洲天堂五月 | 狠狠操网站| 久草视频国产 | 韩日激情视频 | 亚洲中文字幕无码av永久 | 欧美性受xxxx黑人 | 免费黄色91| 香蕉久久夜色精品国产使用方法 | 久久av无码精品人妻出轨 | 激情五月深爱五月 | 久草新免费 | 毛片大全| 日韩视频在线免费观看 | 国产又大又黑又粗 | 夏目彩春娇喘呻吟高潮迭起 | 第一福利在线 | 欧美做爰全过程免费观看 | 中文人妻av久久人妻18 | 亚洲色图激情小说 | 国产精品无码成人片 | 精品国产乱码久久久久久蜜柚 | 欧美一区欧美二区 | 不卡av在线 | 华丽的外出在线观看 | 国产福利电影在线 | 伊人久久国产精品 | 亚洲欧美自偷自拍 | 精品久久久999 | 天天摸夜夜添狠狠添婷婷 | 日本黄色美女 | 91偷拍一区二区三区精品 | 高h乱l高辣h文短篇h | 国产午夜三级一区二区三 | 美女一区二区三区四区 | 国产操人 | 大色综合 | 国产在线观看99 | 欧美做爰猛烈床戏大尺度 | 天天干 夜夜操 | 偷拍亚洲| 精品人妻无码一区二区 | 黄色片免费在线观看 | 久久夜色精品国产欧美乱 | www.香蕉视频.com | 男人喷出精子视频 | 一区二区的视频 | 日韩国产精品久久 | 黄瓜视频色版 | 538国产精品一区二区免费视频 | 五月网站 | 色黄啪啪网 |