国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python中的命名元組(namedtuple)到底是什么東西?干嘛用的?

這篇具有很好參考價值的文章主要介紹了Python中的命名元組(namedtuple)到底是什么東西?干嘛用的?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Python中有一種特殊的元組叫做命名元組,英文名叫namedtuple。

為什么要用命名元組呢?

思考下面的問題:

如何設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)承載一個五維的數(shù)據(jù),如一個學(xué)生的基本信息?

方法有二:

1. Python是面向?qū)ο笳Z言,可以使用class,定義一個學(xué)生類,將五維信息作為屬性,這是一個重量級的做法?;蛘哒f,是一個自定義的數(shù)據(jù)結(jié)構(gòu)。也是比較通用的方法。

2.?使用tuple,存儲五維數(shù)據(jù),輕量級。例如:student = ('xiaowang','00001','male',22,99)

????????但是這樣的做法有兩個弊端:(1)索引值難記,難對應(yīng)。(2).無法表達(dá)元素的含義,只能事先約定。

于是,Python創(chuàng)造一個新的數(shù)據(jù)類型,一種特殊的元組,命名元組(namedtuple)。

值的含義被命名,表述清楚,使用’.’符引用 。

同時,兼具tuple特性,輕量級,仍然可以使用索引。

龜叔:“不要過度的自己去構(gòu)建數(shù)據(jù)結(jié)構(gòu),盡量去使用命名元組 (named tuple) 而不是對象,盡量使用簡單的屬性域,因?yàn)閮?nèi)置數(shù)據(jù)類型是你最好的朋友?!?/strong>

可以定義一個命名元組對象student_info用來存儲一個五維的學(xué)生信息數(shù)據(jù)。

from collections import namedtuple
# 命名元組對象student_info
student_info = namedtuple('stud_info','name, id, gender, age, score')
# 使用student_info對象對studinf進(jìn)行賦值
studinf = student_info(name = 'xiaowang', id = '00001', gender = 'male', age = 22, score = 99)
print("name:{}, id:{}, gender:{}, age:{}, score:{}".format(studinf[0],studinf[1],studinf[2],studinf[3],studinf[4]))

也可以用"."來引用屬性

from collections import namedtuple
# 命名元組對象student_info
student_info = namedtuple('stud_info','name, id, gender, age, score')
# 使用student_info對象對studinf進(jìn)行賦值
studinf = student_info(name = 'xiaowang', id = '00001', gender = 'male', age = 22, score = 99)
print("name:{}, id:{}, gender:{}, age:{}, score:{}".format(studinf.name,studinf.id,studinf.gender,studinf.age,studinf.score))

可以使用_make方法對命名元組整體賦值。

from collections import namedtuple
# 命名元組對象student_info
student_info = namedtuple('stud_info','name, id, gender, age, score')
value = ['xiaoli','00002','female',23,100]
studinf = student_info._make(value)
print("name:{}, id:{}, gender:{}, age:{}, score:{}".format(studinf.name,studinf.id,studinf.gender,studinf.age,studinf.score))

可以使用_replace方法修改命名元組的元素值,生成新命名元組。

from collections import namedtuple
# 命名元組對象student_info
student_info = namedtuple('stud_info','name, id, gender, age, score')
# 使用student_info對象對studinf進(jìn)行賦值
studinf = student_info(name = 'xiaowang', id = '00001', gender = 'male', age = 22, score = 99)
newstud = studinf._replace(name = 'xiaozhao', id = '00003')
print(newstud)
print(studinf)

namedtuple,python,開發(fā)語言

?注意看,studinf是否有改變。 初始化時的’stud_info’在輸出的時候體現(xiàn)。

命名元組的終極實(shí)例

從csv文件中導(dǎo)入數(shù)據(jù)

namedtuple,python,開發(fā)語言

?依次顯示出來。

from collections import namedtuple
import csv
student_info = namedtuple('stud_info','name, id, gender, age, score')
for studinfs in map(student_info._make, csv.reader(open("D:\\students.csv", "r"))):
    print(studinfs)

namedtuple,python,開發(fā)語言

學(xué)會了就點(diǎn)個贊吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-684540.html

到了這里,關(guān)于Python中的命名元組(namedtuple)到底是什么東西?干嘛用的?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 今天我們來淺談一下ChatGPT到底是什么東西

    今天我們來淺談一下ChatGPT到底是什么東西

    這是一篇非學(xué)術(shù)專業(yè)性的文章,而我也是為了解chatGPT而學(xué)了兩三天人工智能,所以哪里寫的不好的不對的地方還希望海涵。 圖靈測試 1950年,人工智能之父艾倫·圖靈提出樂“圖靈測試”。就是說當(dāng)你在不面對面的時候跟機(jī)器人進(jìn)行文字聊天的時候,如果你很難分辨出來對方

    2023年04月09日
    瀏覽(26)
  • 大白話講解數(shù)據(jù)庫的三級模式及二級映像(所謂的內(nèi)外模式在生活中到底是什么東西?)

    形象一點(diǎn)來說,把數(shù)據(jù)看做貨物,數(shù)據(jù)庫是倉庫,模式就是表格。 你有一個倉庫,倉庫里成千上萬的貨物,隨便你怎么堆,你堆個正方體,堆個圓柱體,甚至隨便亂堆都行,你怎么堆的叫內(nèi)模式。 完事你寫了一張表,表上對全部貨物按某個標(biāo)準(zhǔn)分類,而且標(biāo)清了啥貨物在哪

    2024年02月07日
    瀏覽(23)
  • 【學(xué)習(xí)筆記】Python核心技術(shù)與實(shí)戰(zhàn)-基礎(chǔ)篇-03列表和元組,到底用哪個?

    【學(xué)習(xí)筆記】Python核心技術(shù)與實(shí)戰(zhàn)-基礎(chǔ)篇-03列表和元組,到底用哪個?

    列表和元組,都是一個可以放置任意數(shù)據(jù)類型的有序集合。 在絕大多數(shù)編程語言中,集合的數(shù)據(jù)類型必須一致。不過,對于 Python 的列表和元組來 說,并無此要求: 列表是動態(tài)的,長度大小不固定,可以隨意地增加、刪減或者改變元素(mutable)。 而元組是靜態(tài)的,長度大小

    2024年02月08日
    瀏覽(20)
  • 【Android】Kotlin 中的Flow是個什么東西

    前言 Kotlin Flow 是 Kotlin Coroutine 用于異步獲取數(shù)據(jù)流的一個庫。它允許我們以類似于集合的方式發(fā)射多個異步生成的值,并通過類似于 RxJava 的操作符鏈?zhǔn)教幚磉@些值。 基本概念 Flow 的基本概念是,一個 Flow 代表了一個異步生成的值序列,這些值可能會在不同的時間點(diǎn)被發(fā)送出

    2024年02月08日
    瀏覽(20)
  • Django的數(shù)據(jù)庫操作中的F對象是什么東西?

    在Django中, F 對象是一個用于表示數(shù)據(jù)庫字段的值的特殊對象。 它允許你在數(shù)據(jù)庫層面進(jìn)行原子操作,而不需要先將數(shù)據(jù)從數(shù)據(jù)庫中檢索到Python層再進(jìn)行操作。 F 對象的使用通常涉及到數(shù)據(jù)庫更新,特別是在處理并發(fā)操作時。 以下是 F 對象的主要特性和用法: 原子操作:

    2024年01月18日
    瀏覽(17)
  • Python中的元組(tuple)

    Python中的元組(tuple)是一種不可變的有序序列,與列表(list)類似。元組中的元素可以是任何類型的對象,并且可以包含重復(fù)的元素。元組一旦創(chuàng)建就無法修改。 以下是Python元組的一些常用操作: 1. 創(chuàng)建元組:可以使用小括號()或者tuple()函數(shù)來創(chuàng)建一個元組。 ```python my_tuple =

    2024年02月04日
    瀏覽(25)
  • 數(shù)據(jù)存儲中的加鹽到底是什么?

    數(shù)據(jù)存儲中的加鹽到底是什么?

    鹽(Salt) 在密碼學(xué)中,是指通過在密碼任意固定位置插入特定的字符串,讓散列后的結(jié)果和使用原始密碼的散列結(jié)果不相符,這種過程稱之為“加鹽”。(看不懂沒關(guān)系,接著往下看) 早期的軟件系統(tǒng)或者互聯(lián)網(wǎng)應(yīng)用,數(shù)據(jù)庫中設(shè)計(jì)用戶表的時候,大致是這樣的結(jié)構(gòu): 數(shù)據(jù)

    2024年02月07日
    瀏覽(21)
  • 軟件測試中的二八定律到底是什么?

    目錄 前言: 一、80%的軟件缺陷,集聚在軟件20%的模塊中 二、軟件測試工作盡早介入 三、反映在軟件測試的自動化方面

    2024年02月13日
    瀏覽(23)
  • OpenCV中的HoughLines函數(shù)和HoughLinesP函數(shù)到底有什么區(qū)別?

    OpenCV中的HoughLines函數(shù)和HoughLinesP函數(shù)到底有什么區(qū)別?

    ????????基于OpenCV進(jìn)行直線檢測可以使用HoughLines和HoughLinesP函數(shù)完成的。這兩個函數(shù)之間的唯一區(qū)別在于,第一個函數(shù)使用標(biāo)準(zhǔn)霍夫變換,第二個函數(shù)使用概率霍夫變換(因此名稱為 P)。概率版本之所以如此,是因?yàn)樗鼉H分析點(diǎn)的子集并估計(jì)這些點(diǎn)都屬于同一條線的概率

    2024年02月07日
    瀏覽(22)
  • Python中進(jìn)程和線程到底有什么區(qū)別?

    Python中進(jìn)程和線程到底有什么區(qū)別?

    python 安裝包+資料:點(diǎn)擊此處跳轉(zhuǎn)文末名片獲取 一、進(jìn)程和線程的關(guān)系 線程與進(jìn)程的區(qū)別可以歸納為以下4點(diǎn): 地址空間和其它資源(如打開文件) :進(jìn)程間相互獨(dú)立,同一進(jìn)程的各線程間共享。某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見。 通信 :進(jìn)程間通信IPC,線程間可以直接讀寫

    2023年04月08日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包