日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



01 如何選擇合適的數(shù)據(jù)結(jié)構(gòu)?為什么這很重要?

編程語言中的數(shù)據(jù)結(jié)構(gòu)是用來整理和存儲數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)自身內(nèi)部就定義了很多方法用來處理數(shù)據(jù),不同的數(shù)據(jù)結(jié)構(gòu)擁有不能的優(yōu)勢,這篇文章就大概的過一遍Python中非常重要的數(shù)據(jù)結(jié)構(gòu)。

首先,一定要明確一點,數(shù)據(jù)結(jié)構(gòu)的選擇是基于對數(shù)據(jù)和項目最終目的的整體考量。不合適的數(shù)據(jù)結(jié)構(gòu)可能會導(dǎo)致更長的處理時間、更多的內(nèi)存占用等等。

02 Python中的數(shù)據(jù)結(jié)構(gòu)

Python中用途最廣泛的數(shù)據(jù)結(jié)構(gòu)有以下幾種:

  • tuple
  • str
  • range
  • list
  • dict
  • set

我們一起來過一遍tuple和set使用方法吧!

tuple 元組

tuple這個數(shù)據(jù)結(jié)構(gòu)是被小括號包圍的一組數(shù)據(jù),并且它有一個重要的屬性,一旦被定義,不可以被更改

tuple元組的定義

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖1

如圖1所示,我們定義了兩個變量a和b,至于區(qū)別只是b的數(shù)據(jù)后面加了一個逗號。如果不加逗號,a的 數(shù)據(jù)類型被定義成了整數(shù)型。加了逗號,Python則會默認(rèn)將數(shù)據(jù)類型設(shè)置為tuple。在圖2中,展示了幾種常用的定義tuple的方法。

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖2

tuple內(nèi)數(shù)據(jù)的調(diào)用

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖3

len()函數(shù)可以返回tuple數(shù)據(jù)結(jié)構(gòu)中一共有多少個數(shù)據(jù),我們注意到tuple數(shù)據(jù)結(jié)構(gòu)中并不需要所有的數(shù)據(jù)格式是一樣的。使用print()將tuple元組的數(shù)據(jù)個數(shù)打印出來,并且通過a[i]的形式調(diào)用每一個數(shù)據(jù)。

a[i]中的下標(biāo)i是從0開始的,也就是說a中的1,2,‘逃學(xué)博士’分別對應(yīng)的下標(biāo)為0,1,2。

tuple數(shù)據(jù)一旦創(chuàng)建,無法更改

繼續(xù)拿a舉例,如果我們想要改變tuple a中的數(shù)據(jù),比方說a[0],我們是不是可以這么做呢?

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖4

我們試圖將數(shù)值5賦值給a[0],但是系統(tǒng)報錯顯示tuple不支持賦值,也就是a[0]無法被修改。這也是tuple最重要的屬性之一,tuple的好處就是數(shù)據(jù)安全性高。

tuple數(shù)據(jù)一旦創(chuàng)建,真的不能修改嗎?

其實,tuple的數(shù)據(jù)無法修改也不是百分之百的。如圖5

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖6

a中的最后一個數(shù)據(jù)為list,a[2][0]則會指定為‘逃學(xué)博士’。如果對a[2][0]進行賦值,我們發(fā)現(xiàn)tuple 元組a的數(shù)據(jù)變了。原因在于我們無法直接賦值給a[2],因為a[2]是元組a的數(shù)據(jù)。但是,a[2]是一個list,而list的數(shù)據(jù)是可以被修改的,因此調(diào)用a[2][0]是可以直接修改list里面的內(nèi)容。

集合 set

集合set是用大括號將數(shù)據(jù)包裹起來,如圖7所示。

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖7

那么,集合set最重要的屬性是什么呢?集合set中是無法包含重復(fù)的數(shù)據(jù)。如圖8,我們先定義一個list [1, 2, 3, 4, 1, 2, 3]。其中1, 2, 3是重復(fù)出現(xiàn)的。如果有一個項目需要我們?nèi)ゲ檎疫@個數(shù)據(jù)中一共出現(xiàn)的多少個數(shù)據(jù),不包括重復(fù)的,就可以用到set集合了。

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖8

向集合set中添加和刪除數(shù)據(jù)是被允許的。添加數(shù)據(jù)使用add()函數(shù),刪除函數(shù)使用remove()函數(shù)。

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖9

圖9中,我們給集合b添加了兩次數(shù)據(jù)5。但是,由于set無法擁有兩個重復(fù)的數(shù)據(jù)。因此,第二次被忽略了,而且系統(tǒng)不會報錯。

Python基礎(chǔ)篇 - 一文搞定Python數(shù)據(jù)結(jié)構(gòu)tuple和set

圖10

調(diào)用remove()函數(shù),我們第一次調(diào)用去掉了集合b中的數(shù)字5。但是第二次調(diào)用remove()系統(tǒng)顯示報錯,這是因為集合b中這時候已經(jīng)沒有我們要去除的5了。

總結(jié)

數(shù)據(jù)結(jié)構(gòu)還有很多,集合set和元組tuple中的調(diào)用方法也還有很多。這篇文章想說的是幾個要注意的比較有意思的點。謝謝大家耐心的看完。

分享到:
標(biāo)簽:數(shù)據(jù)結(jié)構(gòu) Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定