国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python編程:詳解命名元組(namedtuple)的使用要點

開發 前端
本文主要介紹了Python自帶集合模塊中的命名元組(namedtuple)的使用,即可以當做一般的元組使用,由可基于字段名的方式訪問元組值,并介紹了命名元組內部擴展的幾個方法和和屬性的應用示例。

前言

本文繼續來介紹Python集合模塊,這次主要簡明扼要的介紹其內的命名元組,即namedtuple的使用。閑話少敘,我們開始——記得點贊、關注和轉發哦~ ^_^

創建命名元組

Python集合中的命名元組類namedTuples為元組中的每個位置賦予意義,并增強代碼的可讀性和描述性。它們可以在任何使用常規元組的地方使用,且增加了通過名稱而不是位置索引方式訪問字段的能力。其來自Python內置模塊collections。其使用的常規語法方式為:

import collections
XxNamedTuple = collections.namedtuple(typename, field_names):

如果導入的方式不同,比如:import collections as cAlias、from collections import namedtuple、from collections import namedtuple as NamedTuple等,這樣我們創建的命名元祖子類的形式可以對應為:

XxNamedTuple = cAlias.namedtuple(……)
XxNamedTuple = namedtuple(……)
XxNamedTuple = NamedTuple(……)

其中:

參數typename:為返回的新元組子類XxNamedTuple指定一個字符串型類名稱。新的子類用于創建類似元組的對象,所創建的對象具有可通過屬性查找、位置索引以及迭代的方式來訪問的相關字段。子類的實例還有一個有用的文檔字符串(相當于幫助文檔,帶有typename和field_names)和一個有用的__repr__()方法,該方法以名稱=值的格式列出元組內容。

參數field_names:是通常是一個字符串序列,如[' x ', ' y ']。作為可選方式,field_names也可以是一個字符串,但包含的相應字段名是用空格和/或逗號分隔,例如' x y '或' x, y '。

任何有效的Python標識符都可以用作命名字段名稱,但不能以下劃線(_)開始。有效的標識符包括字母、數字和下劃線,但不要以數字或下劃線開始,不能使用關鍵字,如class、return、global、pass或raise等。

為了理解NamedTuple是如何工作的,我們假設有一個Employee對象,其擁有id、name和age屬性。請看代碼示例清單:

運行程序輸出結果類似如下:

Employee(id='111', name='Solo Cui ', age='18')
按索引方式訪問Employee的名子為 : Solo Cui
Employee(id='222', name='Annie Kent', age='26')
按鍵(字段名)訪問Employee的名子為 : Annie Kent

另外,創建命名元組的函數中其它幾個參數用的少,這里僅作簡單介紹:

參數rename:如果rename為true,無效的字段名將自動替換為位置名。例如,['abc', 'def', 'ghi', 'abc']被轉換為['abc', '_1', 'ghi', '_3'],消除了關鍵字def和重復的字段名abc。

參數defaults:可以是None或默認值的可迭代對象。由于帶有默認值的字段必須出現在任何沒有默認值的字段之后,因此默認值應用于最右邊的參數,依次向左。例如,如果字段名是['x', 'y', 'z'],默認值是(1,2),那么x將是一個必需的參數,y將默認值為1,z將默認值為2。

參數module:如果定義了module,則命名元組的__module__屬性設置為該值。

命名元組實例沒有為每個實例單獨使用字典,所以它們是輕量級的,不需要比常規元組更多的內存。

命名元組特定方法

除了從元組繼承的方法之外,命名元組還支持另外三個方法和兩個屬性。為了防止與字段名發生沖突,方法和屬性名以下劃線開頭。分別介紹如下:

1)_make(iterable):

類方法,從現有序列或可迭代對象生成新實例。代碼示例如下:

輸出結果類似如下:

Employee(id='333', name='Batman', age='28')

2)_asdict ():

返回一個新的字典,它將字段名映射到對應的值。示例代碼如下:

輸出結果類似如下:

{'id': '333', 'name': 'Batman', 'age': '28'}

3)_replace (**kwargs):

返回一個命名元組的新實例,用新值替換指定字段。代碼示例如下:

輸出結果如下:

Employee(id='777', name='Batman', age='34')

4)_fields:

以字符串元組方式列出字段名的。用于自省和從現有的命名元組創建新的命名元組類型。示例代碼如下:

輸出結果為:

('id', 'name', 'age')

我們可以使用_fields屬性從現有的命名元組中創建新的命名元組。示例如下:

輸出結果類似如下:

Pixel(x=5, y=8, red=128, green=255, blue=0)

結果的實體性賦值

這里所說的實體,類似Java中的數據實體對象——只有簡單的屬性字段。而命名元組在為csv或sqlite3模塊操作而返回的元組結果分配給對應字段名而裝配成簡單實體時特別有用,自動進行字段的對應賦值。比如在當前Python程序位置有個employees.csv,其包含內容如下:

張三,26,工程師,開發部,中級
李四,32,項目經理,項目部,高級

通過示例,我們來完成Employee實體的命名元組的自動裝配,代碼示例如下:

輸出結果類似如下:

張三 工程師 26 開發部 中級
李四 項目經理 32 項目部 高級

再簡單地來個數據庫操作和裝配實體的示例,代碼清單如下:

我這里只是簡單的創建了數據庫并創建表,然后插入一條數據,再查詢并完成命名元組的實體化裝配和結果輸出。

運行輸出結果如下:

王武 經理

本文小結

本文主要介紹了Python自帶集合模塊中的命名元組(namedtuple)的使用,即可以當做一般的元組使用,由可基于字段名的方式訪問元組值,并介紹了命名元組內部擴展的幾個方法和和屬性的應用示例。最后還介紹了基于命名元組的實體化封裝應用。基于代碼示例進行介紹,這樣便于你動手實踐,以便更好地掌握和理解。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-01-13 05:18:50

數據類型性能

2023-10-26 18:03:14

索引Python技巧

2015-09-21 11:45:10

PHP編程效率要點

2010-07-12 11:58:02

Java UDP協議

2023-04-18 08:52:35

模塊Python

2019-11-27 10:05:00

LombokJava編程

2023-12-11 12:03:14

Python工具元組

2009-12-04 09:14:05

.NET 4.0

2009-12-02 13:53:12

PHP使用技巧

2011-06-27 16:59:19

Qt 動態 插件

2011-04-21 09:46:41

設計模式

2015-06-10 10:08:55

編程如何命名

2009-12-04 09:50:59

PHP ob_star

2020-11-12 19:02:43

命名編程編碼

2010-07-30 15:11:41

無線路由使用

2009-09-01 16:07:04

C#命名規約

2019-11-18 17:05:02

JavaScript面向對象程序編程Java

2009-06-29 17:57:30

ApplicationJSP

2009-11-11 17:48:36

OSPF路由技術

2009-10-15 13:11:28

綜合布線系統
點贊
收藏

51CTO技術棧公眾號

亚洲天堂男人天堂| 内射国产内射夫妻免费频道| 一区二区国产在线观看| 亚洲一区二区在线观| 亚洲免费在线看| 黄色视屏在线免费观看| 国语自产精品视频在线看| 99精品免费网| 色偷偷亚洲第一成人综合网址| 欧美成人性战久久| 亚洲最大在线| 男人添女人荫蒂免费视频| 欧美日韩另类字幕中文| 午夜精品久久久久久毛片| 精品免费一区二区三区蜜桃| 中文字幕亚洲综合久久菠萝蜜| 污视频网站免费在线观看| 国产精品视频男人的天堂| 国产成人啪免费观看软件| se在线电影| 国产va免费精品高清在线观看 | 日韩av网站导航| 小处雏高清一区二区三区| 久久国产精品视频在线观看| 欧美一级理论片| 在线精品国产| 九色视频一区| 色综合久久悠悠| 丁香激情综合国产| 91九色在线播放| 精品欧美一区二区久久久伦| 午夜精品福利一区二区三区av | 美女视频免费精品| 青青草视频在线视频| 日韩一区二区三区在线视频| 青青草97国产精品麻豆| 亚洲欧美日韩一级| 欧美成人精品h版在线观看| 国产精品一区二区在线看| 欧洲精品二区| 国内精品久久国产| 欧美三级视频在线播放| 欧美fxxxxxx另类| 中文产幕区在线观看 | av成人免费看| 路边理发店露脸熟妇泻火| 欧美aaa一级片| 午夜精彩视频在线观看不卡| 亚洲一级片在线看| 久久久精品电影| 久久精品这里热有精品| 91精品在线观| 日韩精品一区在线视频| 开心丁香婷婷深爱五月| 午夜一区二区三区视频| 大桥未久在线视频| 川上优的av在线一区二区| 久久av高潮av| 国产呦系列欧美呦日韩呦| 999精品在线观看| 999在线免费视频| 国产精品一二三视频| 午夜精品爽啪视频| 中文字幕一区二区三区在线不卡 | 亚洲不卡一卡2卡三卡4卡5卡精品| 97高清视频| 亚洲精品tv久久久久久久久| 久久久久久久久久久久久久一区| 亚洲一区中文字幕| 91精品国产综合久久久久久久久久| 中文字幕欧美在线| 精品无人区乱码1区2区3区在线| 欧美激情在线一区二区| 欧美日韩国产小视频在线观看| 亚洲欧美一区二区激情| 国产自产女人91一区在线观看| 精品国产三级a∨在线| 美脚丝袜一区二区三区在线观看| 中文字幕久精品免费视频| 日韩电影免费观看在线观看| 欧美福利在线观看| 精品国产一区二区三区免费| www.色偷偷.com| 欧美剧在线免费观看网站| 亚洲在线一区| a国产在线视频| 久久99久久久久久| 久久久久久久一| 亚洲国产日日夜夜| 欧美日韩午夜| 国产传媒av在线| 日本www在线视频| 午夜精品三级视频福利| 天天综合色天天综合| 一本色道久久综合一区| 亚洲成人看片| www.1024| 久久99精品久久久久久水蜜桃| 精品人在线二区三区| 不卡的电视剧免费网站有什么| 日本一区福利在线| aiai在线| 米仓穗香在线观看| 538国产精品一区二区免费视频| 欧美丝袜一区二区| 国产毛片精品国产一区二区三区| 成人h动漫免费观看网站| 欧洲亚洲在线| av网站大全免费| 国产a∨精品一区二区三区不卡| 欧美日韩一区中文字幕| 国产成人在线网站| 日韩欧美视频在线播放| 1024在线看片你懂得| 亚洲国产精品三区| 国产精品v欧美精品∨日韩| 亚洲欧美国产精品| 一区二区三区日韩在线观看| 日韩中文字幕一区二区三区| 精品综合久久88少妇激情| 暖暖日本在线观看| 日日躁夜夜躁aaaabbbb| 欧美污视频久久久| 欧美成人国产va精品日本一级| 色999日韩国产欧美一区二区| 成a人片亚洲日本久久| 欧美粗暴jizz性欧美20| 91麻豆精品国产综合久久久| 邻居大乳一区二区三区| av免费观看网| 久久综合婷婷综合| 欧美最猛性xxxxx免费| 日韩av最新在线观看| 夜夜亚洲天天久久| 成人免费视频免费观看| 亚洲婷婷在线| 久久成人福利| 深夜av在线| 日韩欧美亚洲一区| 免费人成自慰网站| 国内成+人亚洲| 欧洲中文字幕国产精品| 亚洲小视频在线观看| 欧美视频中文字幕| 亚洲三级小视频| 国产美女视频一区| 99在线|亚洲一区二区| 亲子伦视频一区二区三区| 欧美私密网站| √天堂资源地址在线官网| 16—17女人毛片毛片| 91精品国产毛片武则天| 99国精产品一二二线| 91sa在线看| 国产一区二区三区毛片| 6080午夜不卡| 欧美日韩国产色视频| 国产精品伦理一区二区| 岛国精品在线播放| 蜜臀av在线播放一区二区三区 | 日韩av手机在线看| 最新中文字幕亚洲| 亚洲第一区第二区| 欧美日本一区二区三区四区| 一区二区三区av电影| 国产日产欧美精品一区二区三区| 激情欧美一区二区三区在线观看| 欧美88av| 婷婷丁香综合| jizzjizz欧美69巨大| 97人人澡人人爽91综合色| 日本韩国欧美| 黄频免费在线观看| 羞羞的视频在线看| 午夜在线视频| 日本欧美在线视频免费观看| 免费黄色片在线观看| 一级理论片在线观看| 又黄又爽无遮挡| 国产毛片视频| 高清一级毛片视频| ckplayer中文字幕| caoporen人人| 国产视频一二| 嫩草嫩草嫩草嫩草| 国产视频一二区| 午夜3点看的视频| 日本成人免费网站| 色噜噜狠狠永久免费| 午夜激情福利在线| 国产99久久九九精品无码| 成年人网站国产| 国产免费黄色av| 日韩精品一区中文字幕| 日韩一级免费在线观看| 91av俱乐部| 国产一级二级在线| 国内精品卡一卡二卡三新区| 青青草免费在线| 欧美激情二区|