最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python語(yǔ)言中的數(shù)據(jù)類型-序列

 更新時(shí)間:2022年02月24日 15:34:41   作者:酷爾。  
這篇文章主要介紹了Python語(yǔ)言中的數(shù)據(jù)類型-序列,前面我們提到了Python數(shù)據(jù)類型中的內(nèi)置數(shù)值類型與字符串類型。今天學(xué)習(xí)一下Python的序列數(shù)據(jù)類型,要知道的是在Python中沒有數(shù)組這一數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考一下

前言:
前面我們提到了Python數(shù)據(jù)類型中的內(nèi)置數(shù)值類型字符串類型。今天學(xué)習(xí)一下Python的序列數(shù)據(jù)類型,要知道的是在Python中沒有數(shù)組這一數(shù)據(jù)結(jié)構(gòu),也沒有提供直接創(chuàng)建數(shù)組的功能,但是可以使用內(nèi)置的序列數(shù)據(jù)類型實(shí)現(xiàn)數(shù)組的某些功能。

一、什么是序列數(shù)據(jù)類型?

序列數(shù)據(jù)類型是Python中的一種基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),是一組有順序的元素的集合。
這個(gè)集合內(nèi)可以有多個(gè)元素也可以不包含元素。
總的來(lái)說(shuō)包含元組(tuple)、列表(list)、字符串(str)、字節(jié)數(shù)據(jù)(bytesbytearray
如果根據(jù)對(duì)象可變不可變進(jìn)行劃分的話

可變序列為:列表、字節(jié)數(shù)組
不可變序列為:字符串、元組、字節(jié)序列

二、序列數(shù)據(jù)類型的基本操作

1.序列的通用方法

支持序列類型的內(nèi)置函數(shù):len()、max()、min()、sum()。其中使用sum()函數(shù)的時(shí)候
必須是數(shù)值型序列,如果有非數(shù)值型的序列則將拋出TypeError,對(duì)于字符串、字節(jié)數(shù)
據(jù)也會(huì)導(dǎo)致該結(jié)果。其余函數(shù)在使用的時(shí)候?qū)ψ址凑兆值湫蜻M(jìn)行挑選。

2.通過索引訪問數(shù)據(jù)

序列中的各個(gè)類型均是可以迭代的對(duì)象,可以直接使用for 循環(huán)進(jìn)行迭代獲取每一個(gè)數(shù)據(jù)。也可以通過下標(biāo)索引進(jìn)行指定位置上的數(shù)據(jù)獲取。序列的第一個(gè)元素是X[0],序列的最后一個(gè)元素是X[len(X)-1]。序列的下標(biāo)越界或者不是整數(shù)均會(huì)導(dǎo)致異常。
序列還支持切片操作,如下:

st="asfdcac"
#打印所有的數(shù)據(jù)
print(st[::])
#逆序打印字符串
print(st[-1::-1])

3.同類型的序列進(jìn)行拼接

序列可以使用操作符+連接兩個(gè)序列,形成一個(gè)新的序列對(duì)象。也可以通過*進(jìn)行序列的重復(fù)。

4.判斷序列成員

在本文中前面提到了可以使用循環(huán)對(duì)序列進(jìn)行迭代,找出每一個(gè)元素除了這一功能,Python中還有直接判斷序列中是否包含某成員

語(yǔ)法規(guī)則如下:

  • x in s【如果x在序列s中則為True】
  • x not in s【如果x不在序列s中為True】
  • s.count(x)【統(tǒng)計(jì)X在序列s中出現(xiàn)的次數(shù)】
  • s.index(X)【找到X在s中第一次出現(xiàn)的坐標(biāo),找不到就報(bào)錯(cuò)】

5.序列的排序操作

通過內(nèi)置函數(shù)sorted()可以對(duì)序列進(jìn)行排序,并將排序后的結(jié)果進(jìn)行返回。

def sorted(*args, **kwargs):

這里可以傳參一個(gè)可迭代的序列,reverse可以指定升序還是降序當(dāng)reverse為True時(shí)排序結(jié)果為降序。key參數(shù)是用于計(jì)算比較鍵值的函數(shù)

6.內(nèi)置函數(shù)all()與any()

  • 這兩個(gè)函數(shù)的作用就是判斷所有的數(shù)據(jù)是否全為True
  • 對(duì)于all()而言所有的成員均為True時(shí)結(jié)果才為True
  • 對(duì)于any()而言只要有成員為True時(shí)結(jié)果就為True

7.序列的拆分

①有限個(gè)數(shù)變量進(jìn)行序列的拆分

在本方法下要確定序列的成員個(gè)數(shù)與接受變量個(gè)數(shù)保持一致。

變量1,變量2,變量3=序列

②不確定個(gè)數(shù)成員變量進(jìn)行拆分

本方法使用與接受序列中特定位置的成員,使用*進(jìn)行不確定個(gè)數(shù)成員變量的接受。
每次拆分*控制的變量只允許出現(xiàn)一次。

例如:

?? ?mystr="nfklsdnfj0sd.....asdfl"
?? ?s1,*args,s2=mystr

   此時(shí)s1,s2會(huì)分別接收n與l其余的將會(huì)讓args進(jìn)行接受。

三、列表

列表的介紹:

前面提到了列表是一個(gè)可變的序列,意思就是可以直接對(duì)列表對(duì)象本身進(jìn)行修改刪除等操作
列表還是Python中一組有序的數(shù)據(jù)結(jié)構(gòu),在Python中沒有數(shù)組,可以使用列表起數(shù)組的作用(?ω?)

1.創(chuàng)建列表

有三種方法:

  • 1.字面量直接創(chuàng)建
  • 2.使用list()與可迭代對(duì)象創(chuàng)建
  • 3.列表解析表達(dá)式

代碼如下:

# 直接聲明
lis0=list(i for i in range(0,101,10))
print(lis0)
lis1=[1,2,3,4]
# 迭代器進(jìn)行聲明
lis2=[ i for i in range(0,101,10)]
print(lis1,lis2)
#字面量
lis3=['Hello',123,'print',bool]
print(lis3)
'''

2.向列表內(nèi)添加數(shù)據(jù)

代碼如下:

# 直接在列表末尾添加
lis1.append(2)
print(lis1)
# 切片法添加元素(直接追加另外一個(gè)列表的一部分元素)內(nèi)存地址不變
print(id(lis1))
lis1.extend(lis2)
lis1.extend(lis2[1:5])
print(lis1,id(lis1))
# 在指定的位置插入指定的元素999
lis1.insert(1,999)
print('11111111111',lis1)

3.刪除列表內(nèi)的數(shù)據(jù)

代碼如下:

# 什么也不填,默認(rèn)刪除的是列表的最后一個(gè)元素
lis1.pop()
print(lis1)
# 將列表內(nèi)的指定下標(biāo)元素進(jìn)行刪除
lis1.pop(1)
print(lis1)
# 刪除指定的元素
lis1.remove(80)
print(lis1)
# 切片法刪除元素
# 切片法刪除元素后,列表的地址會(huì)發(fā)生改變*****
print(id(lis1),id(lis1[1:4]),lis1[1:4])
lis1[1:4]
# 清空列表
lis1.clear()
print(lis1)
# 刪除列表(再使用該列表的時(shí)候會(huì)報(bào)錯(cuò))
del lis1
# print(lis1)
'''列表內(nèi)元素的修改'''
print(lis2)
# 對(duì)指定索引的元素進(jìn)行修改
lis2[0]=100
print(lis2)
# 切片法修改一段列表
# 會(huì)將新指定的列表,替換掉指定索引區(qū)間的元素,區(qū)間超出的話,會(huì)直接在末尾添加
# 切片內(nèi)的元素個(gè)數(shù),與所要改成的切片元素個(gè)數(shù),不一致沒關(guān)系直接進(jìn)行替換
lis2[10:]=[1,2,3]
print(lis2)
# del也可以對(duì)指定位置元素進(jìn)行刪除
del lis[1]
del lis[2:4]
# 也可以直接對(duì)列表的某段進(jìn)行賦空[]達(dá)到刪除的效果
lis2[2:4]=[]

三、元組

元組是不可變序列,所以不支持增刪,這里僅僅對(duì)他的特性以及注意點(diǎn)進(jìn)行介紹。

元組也是一組有序序列,包含零個(gè)或多個(gè)對(duì)象的引用,與列表十分相似但又有許多不同.

具體來(lái)說(shuō)有以下特點(diǎn):

元組是不可變序列僅支持讀取

  • 1、不支持添加元素【增】
  • 2、不支持刪除元素【刪】
  • 3、不支持修改元素(修改操作的步驟是:先刪除、再添加)【改】
  • 4、支持2種查找元素【查】
    • a、根據(jù)下標(biāo)查找元素,常稱為【訪問】元素,時(shí)間復(fù)雜度為O(1)
    • b、根據(jù)元素獲取下標(biāo),常稱為【查找】元素,時(shí)間復(fù)雜度為O(n)

如果元組中只有一個(gè)數(shù)據(jù),那么數(shù)據(jù)后的逗號(hào)不可省略元組的括號(hào)可以省略。

元祖的聲明與遍歷如下:

# 元組的聲明一
s=('Tom',666,'嗨')
print(s,type(s))
# 元組的聲明二
p=tuple(('Tom',666,'嗨'))
print(p)
# 空元組
ss=()
print(ss,type(ss))
# 單元素元組--要加,否則會(huì)會(huì)直接轉(zhuǎn)換成字符串類型
sss=('fuck')
print(sss,type(sss))
# 元組的括號(hào)可以省略
sss='fuck',
print(sss,type(sss))
tp=('nabd',['123',123],'李四')
print(tp)
# 元組對(duì)應(yīng)位置的元素不會(huì)變,但元組對(duì)應(yīng)位置元素里面的內(nèi)容可以改變
tp[1].insert(1,666)
print(tp)
# 元組的遍歷
for temp in s:
? ? print(temp)

四、字符串

前面一篇博客已經(jīng)提到過字符串了,這里就不再啰嗦一遍了。

五、字節(jié)序列

字節(jié)序列可以分為可變字節(jié)序列(bytearray)與不可變字節(jié)序列(bytes)。
使用字面量生成字節(jié)數(shù)列只需要在字符串前加上b即可。

eg:
str1=b"Hello world"

也可以使用bytes()或者bytearray()進(jìn)行字節(jié)序列的聲明
其中參數(shù)可以傳遞可迭代對(duì)象,只不過可迭代對(duì)象的成員要是在0-255的整數(shù)。
bytes或者bytearray的方法不接受字符串參數(shù),只接受對(duì)應(yīng)類型的參數(shù)。否則報(bào)錯(cuò)
字節(jié)序列支持序列的基本操作。
可以通過字符串編碼得到字節(jié)序列,也可以通過解碼字符序列得到字符串
使用的函數(shù)是decode()encode()。使用過程要注意編碼、解碼規(guī)則。

總結(jié):
本篇博客針對(duì)Python序列進(jìn)行了講解。序列在學(xué)習(xí)使用Python中還是經(jīng)常使用的,希望大家好好掌握,

到此這篇關(guān)于Python語(yǔ)言中的數(shù)據(jù)類型-序列的文章就介紹到這了,更多相關(guān)Python語(yǔ)言中的序列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何使用python獲取現(xiàn)在的日期與時(shí)間

    如何使用python獲取現(xiàn)在的日期與時(shí)間

    學(xué)習(xí)了一段時(shí)間的python,不知道大家對(duì)于代碼的編寫有了屬于自己的一套思路了呢,下面這篇文章主要給大家介紹了關(guān)于如何使用python獲取現(xiàn)在的日期與時(shí)間的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例

    Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例

    今天小編就為大家分享一篇Python 獲取命令行參數(shù)內(nèi)容及參數(shù)個(gè)數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-12-12
  • Python 命名規(guī)范與最佳實(shí)踐

    Python 命名規(guī)范與最佳實(shí)踐

    本文介紹了Python命名規(guī)范與最佳實(shí)踐,包括變量名、模塊名、類名、函數(shù)名和常量名的命名規(guī)則,強(qiáng)調(diào)了命名的清晰性、一致性、科學(xué)性和避免使用特殊符號(hào),感興趣的朋友一起看看吧
    2025-03-03
  • python+Splinter實(shí)現(xiàn)12306搶票功能

    python+Splinter實(shí)現(xiàn)12306搶票功能

    這篇文章主要為大家詳細(xì)介紹了python+Splinter實(shí)現(xiàn)12306搶票功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python?中的對(duì)象析構(gòu)函數(shù)__del__?詳情

    Python?中的對(duì)象析構(gòu)函數(shù)__del__?詳情

    這篇文章主要介紹了Python?中的對(duì)象析構(gòu)函數(shù)del詳情,Python?中的類的構(gòu)造函數(shù)???__init__???,?每當(dāng)實(shí)例產(chǎn)生就會(huì)調(diào)用這個(gè)構(gòu)造函下面更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè)

    Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測(cè)

    這篇文章主要介紹了Python+OpenCV如何實(shí)現(xiàn)直線檢測(cè),幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-10-10
  • Python Tornado框架輕松寫一個(gè)Web應(yīng)用的全過程

    Python Tornado框架輕松寫一個(gè)Web應(yīng)用的全過程

    Tornado全稱Tornado Web Server,是一個(gè)用Python語(yǔ)言寫成的Web服務(wù)器兼Web應(yīng)用框架,Tornado走的是少而精的方向,注重的是性能優(yōu)越,它最出名的是異步非阻塞的服務(wù)器方式,這篇文章主要給大家介紹了關(guān)于Python Tornado框架輕松寫一個(gè)Web應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Python處理zip壓縮文件的常見操作

    Python處理zip壓縮文件的常見操作

    處理zip格式壓縮包文件,可以使用python的zipfile模塊,Python的zipfile模塊用于處理zip格式的壓縮包,以下是一些使用Python的zipfile模塊的常見操作,通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Python實(shí)現(xiàn)QR碼的代碼詳解

    Python實(shí)現(xiàn)QR碼的代碼詳解

    這篇博客將分為五個(gè)部分,詳細(xì)介紹QR碼的生成原理、底層實(shí)現(xiàn),并使用Python代碼實(shí)現(xiàn),采用面向?qū)ο蟮木幊趟悸?使用合適的設(shè)計(jì)模式進(jìn)行案例展示,每個(gè)案例將包含完整代碼和詳細(xì)解釋,需要的朋友可以參考下
    2024-11-11
  • python中sys.path.append的作用

    python中sys.path.append的作用

    本文主要介紹了python中sys.path.append的作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01

最新評(píng)論

濮阳市| 册亨县| 余姚市| 长顺县| 民权县| 河北省| 寿光市| 禄劝| 莱西市| 阿拉善右旗| 铜梁县| 大埔县| 富源县| 乐清市| 池州市| 西丰县| 萍乡市| 沂南县| 兴业县| 灵台县| 千阳县| 盐山县| 峨眉山市| 通渭县| 凤山市| 容城县| 民乐县| 天门市| 宁安市| 蛟河市| 府谷县| 柘荣县| 革吉县| 江永县| 阳信县| 临夏市| 承德县| 海阳市| 浦县| 乌拉特后旗| 沛县|