国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

簡單講解Python編程中namedtuple類的用法

2019-11-25 16:42:34
字體:
來源:轉載
供稿:網友

Python的Collections模塊提供了不少好用的數據容器類型,其中一個精品當屬namedtuple。

namedtuple能夠用來創建類似于元祖的數據類型,除了能夠用索引來訪問數據,能夠迭代,更能夠方便的通過屬性名來訪問數據。

在python中,傳統的tuple類似于數組,只能通過下標來訪問各個元素,我們還需要注釋每個下標代表什么數據。通過使用namedtuple,每個元素有了自己的名字,類似于C語言中的struct,這樣數據的意義就可以一目了然了。當然,聲明namedtuple是非常簡單方便的。
代碼示例如下:

from collections import namedtuple Friend=namedtuple("Friend",['name','age','email']) f1=Friend('xiaowang',33,'xiaowang@163.com')print(f1)print(f1.age)print(f1.email)f2=Friend(name='xiaozhang',email='xiaozhang@sina.com',age=30)print(f2) name,age,email=f2print(name,age,email)

類似于tuple,它的屬性也是不可變的:

>>> big_yellow.age += 1Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: can't set attribute

能夠方便的轉換成OrderedDict:

>>> big_yellow._asdict()OrderedDict([('name', 'big_yellow'), ('age', 3), ('type', 'dog')])

方法返回多個值得時候,其實更好的是返回namedtuple的結果,這樣程序的邏輯會更加的清晰和好維護:

>>> from collections import namedtuple>>> def get_name():...   name = namedtuple("name", ["first", "middle", "last"])...   return name("John", "You know nothing", "Snow")...>>> name = get_name()>>> print name.first, name.middle, name.lastJohn You know nothing Snow

相比tuple,dictionary,namedtuple略微有點綜合體的意味:直觀、使用方便,墻裂建議大家在合適的時候多用用namedtuple。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 子洲县| 岳阳县| 重庆市| 凤庆县| 宁武县| 沈阳市| 延川县| 剑阁县| 中西区| 准格尔旗| 丽江市| 望城县| 平南县| 榕江县| 丘北县| 通渭县| 六枝特区| 扎赉特旗| 康乐县| 新民市| 文登市| 武邑县| 龙州县| 孟村| 荆门市| 阿瓦提县| 洛宁县| 普定县| 白河县| 北京市| 拉萨市| 丹棱县| 黄平县| 阜阳市| 凤城市| 舞阳县| 剑阁县| 武胜县| 隆回县| 乌苏市| 内丘县|