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

Python隨手筆記第一篇(2)之初識(shí)列表和元組

 更新時(shí)間:2016年01月23日 20:35:45   投稿:mrr  
Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個(gè)元素都被分配一個(gè)序號(hào),元素的位置,第一原元素的位置為0,因此類推,序列是最基本的數(shù)據(jù)結(jié)構(gòu),本文給大家分享Python隨手筆記第一篇(2)之初識(shí)列表和元組,感興趣的朋友一起學(xué)習(xí)吧

Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個(gè)元素都被分配一個(gè)序號(hào),元素的位置,第一原元素的位置為0,因此類推。序列是最基本的數(shù)據(jù)結(jié)構(gòu),列表和元組他們之間具有一定的區(qū)別,即列表可以修改,而元組則不能修改!如果要添加元素最好是用列表。

1、 在python中,最基本的數(shù)據(jù)結(jié)構(gòu)是序列,序列中每一個(gè)元素被分配一個(gè)序號(hào),即元素的位置,稱為索引。索引從0開始,-1表示倒數(shù)第一個(gè)元素,-2表示倒數(shù)第二個(gè)元素,因此既可以是從前到后開始對(duì)元素進(jìn)行訪問,也可以從后往前對(duì)元素進(jìn)行訪問。

2、 python序列中有6種內(nèi)建的序列:列表、元組、字符串、Unicode字符串、buffer對(duì)象,xrange對(duì)象。其中有兩種常見類型:列表和元組。

列表和元組的主要區(qū)別在于,列表可以修改,元組則不能。一般來說,在幾乎所有的情況下列表都可以替代元組。一個(gè)例外情況:使用元組作為字典的鍵。因?yàn)殒I不可修改,所以就不能使用列表。

3、 列表中的各個(gè)元素通過逗號(hào)分隔,寫在方括號(hào)中。

4、 序列中也可以包含其他序列。

 

5、 通用序列操作:索引、分片、加、乘、檢查某個(gè)元素是否屬于序列的成員、計(jì)算序列長(zhǎng)度、找出最大元素、找出最小元素。

6、索引:

序列中的所有元素都是有編號(hào)的,從0開始遞增,通過編號(hào)分別訪問。

 

也可以從最后一個(gè)元素往前回溯訪問,最后一個(gè)元素的位置是-1。

字符串字面值也可以直接使用索引,而不需要一個(gè)變量來引用他們,兩者效果一樣。

如果一個(gè)函數(shù)調(diào)用返回一個(gè)序列,那么可以直接對(duì)返回結(jié)果進(jìn)行索引操作。

7、分片:

使用索引來訪問序列中的單個(gè)元素,

使用分片則可以訪問一定范圍內(nèi)的多個(gè)元素。

分片操作需要提供兩個(gè)索引作為邊界,第1個(gè)索引的元素包含在該分片內(nèi),第2個(gè)索引則不包含在分片內(nèi)。

如何訪問最后一個(gè)元素?

原序列中只有9個(gè)元素,索引從0到8

使用number[6:8]無法獲取最后一個(gè)元素

使用倒數(shù)法number[-3:-1]也無法獲取最后一個(gè)元素

有兩種方法可以成行:

①將后面一個(gè)邊界索引設(shè)置出范圍之外,比如number[6:9],將可以涵蓋第8個(gè)元素

②直接省略后面一個(gè)邊界索引,比如number[6:],意思就是可以從第6個(gè)讀取直至最后一個(gè)

同理也有:

兩個(gè)邊界索引都空出的話,就可以讀出全部元素。

另外,對(duì)于number[-3:0]出現(xiàn)[]空列表的結(jié)果,原因是前一個(gè)邊界索引元素必須在后一個(gè)索引元素左側(cè),否則結(jié)果就是空。

8、為分片設(shè)置步長(zhǎng)

分片其實(shí)包含三個(gè)參數(shù)[邊界1:邊界2:步長(zhǎng)]

省略步長(zhǎng)參數(shù)時(shí),步長(zhǎng)就取默認(rèn)值1。

步長(zhǎng)為1就會(huì)便利邊界內(nèi)的全部元素。

步長(zhǎng)大于1時(shí)就會(huì)間隔的取出元素。

比如設(shè)置步長(zhǎng)為2,就會(huì)每2個(gè)元素取出第一個(gè)元素,或者說是每隔1個(gè)元素取出1個(gè)元素。

步長(zhǎng)不能為0,但步長(zhǎng)可以為負(fù)數(shù),這樣就是倒著取,從右往左取數(shù),相應(yīng)的邊界索引之間不再是第一個(gè)索引元素必須在第2個(gè)索引左側(cè)的要求,而是:第一個(gè)索引元素需要在第二個(gè)索引元素的右側(cè)。

比如:

總結(jié)如下:

①步長(zhǎng)參數(shù)可以省略,省略后取默認(rèn)值1;

②步長(zhǎng)為正時(shí),從序列左側(cè)向右側(cè)取,結(jié)果也是這種順序排列;步長(zhǎng)為負(fù)時(shí),從序列右側(cè)向左側(cè)取,結(jié)果也是按照這種倒著的順序(相對(duì)于原序列來說)排列;

③步長(zhǎng)為正時(shí),要求第一個(gè)索引元素必須在第二個(gè)索引元素的左側(cè);步長(zhǎng)為負(fù)時(shí),要求第一個(gè)索引元素必須在第二個(gè)索引元素的右側(cè);

④不論是步長(zhǎng)為正還是步長(zhǎng)為負(fù),第一個(gè)索引元素都會(huì)被取出,第二個(gè)索引元素都不會(huì)被取出。

9、序列相加:

兩種 相同類型 的序列可以進(jìn)行相加操作。

比如:

字符串與字符串相加,列表與列表相加。字符串與列表之間不能相加。

10、序列乘法:

用數(shù)字x乘以一個(gè)序列會(huì)生成同類型的一個(gè)新序列,新序列中原序列會(huì)被重復(fù)x次。

如果想初始化一個(gè)由10個(gè)元素的空序列,可以使用乘法來完成,這里也要使用一個(gè)python內(nèi)置的None值。

None是表示什么都沒有。

記住python是區(qū)分大小寫的。

11、成員存在檢查:

檢查某個(gè)元素是否存在與一個(gè)序列中,使用in。若存在,返回true,若不存在則返回false。

上面兩個(gè)例子,一個(gè)可以用作權(quán)限檢查,一個(gè)可以用作用戶名單檢查。

下面寫一個(gè)用戶名密碼檢查:

12、長(zhǎng)度、最小值、最大值:

使用python內(nèi)建函數(shù)len(),max(),min()來求序列的長(zhǎng)度、最大值、最小值。如:

13、列表

列表可以使用所有適用于序列的標(biāo)準(zhǔn)操作,如:索引、分片、相加、乘法,等等。

列表區(qū)別與字符串、元組等其他類型的序列的特征是:列表是可以修改的。

因此,列表有些特殊的操作:元素負(fù)值、元素刪除、分片賦值、列表方法。

(1)list()函數(shù):

 

list()函數(shù)適用于所有類型的序列,而不只是字符串。

(2)列表賦值:

 

列表賦值,不能為一個(gè)位置不存在的元素進(jìn)行賦值。

(3)刪除元素

從列表中刪除元素,使用del語句來實(shí)現(xiàn)。

 

(4)分片賦值

 

上面的例子,使用list函數(shù)對(duì)name[7:]這一分片進(jìn)行了賦值,一次改變了列表name中多個(gè)元素的值。

①分片賦值也可以完成替換元素的操作。

 

上面的例子是用等長(zhǎng)的列表替代元列表中等長(zhǎng)個(gè)數(shù)的元素,但是當(dāng)替代列表沒有被替代的元素多時(shí),就發(fā)生了直接替代的操作。正如這里使用'world'和'123'對(duì)name列表進(jìn)行替代的操作。

②分片賦值也可以完成插入元素的操作。

當(dāng)沒有被替代的分片元素時(shí),賦值就變成了直接插入元素。

 

③分片賦值也可以完成刪除元素的操作。

 

用一個(gè)空列表來給一個(gè)分片進(jìn)行賦值,相當(dāng)于直接刪除了該分片中的所有元素。

這條語句的作用類似于del number[2:7]。

(5)列表方法:append

append方法用于在列表末尾追加新的對(duì)象。

格式:對(duì)象.append(參數(shù))

只能有一個(gè)參數(shù),是要追加到該對(duì)象的元素。

 

(6)列表方法:count

count方法用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)

 

(7)列表方法:extend

extend方法主要用于使用一個(gè)列表擴(kuò)展另一個(gè)列表。

 

直接將list2擴(kuò)展補(bǔ)充到list1的末尾。

extend擴(kuò)展操作與連接操作的不同之處在于:擴(kuò)展操作修改了原有的列表,而連接操作會(huì)返回一個(gè)全新的列表。

 

使用加法的連接操作并沒有改變?cè)械牧斜怼?/p>

(8)列表方法:index

index方法主要用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置。

 

index會(huì)搜素第一個(gè)'aaa'在列表中的位置,返回它的索引值。

如果沒有搜索到,換句話說,就是列表中沒有出現(xiàn)該對(duì)象,那么久會(huì)報(bào)錯(cuò),產(chǎn)生異常。

(9)列表方法:insert

insert方法用于將對(duì)象插入到列表中。

 

(10)列表方法:pop

pop方法用于從列表中移除一個(gè)元素,并且返回該元素的值。

默認(rèn)是移除最后一個(gè)元素。

 

如果不指定pop(參數(shù))中的參數(shù)取值,那么會(huì)自動(dòng)移除最后一個(gè),如果指定參數(shù)值,則會(huì)移除指定的那個(gè)元素。

pop方法會(huì)返回要移除的那個(gè)元素,并完成從列表中的移除。

pop相當(dāng)于棧中的出棧,append相當(dāng)于棧中的入棧。

pop(0)可以實(shí)現(xiàn)隊(duì)列中的先進(jìn)先出中的出。

(11)列表方法:remove

remove方法用于移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)。

 

只有第一個(gè)匹配項(xiàng)會(huì)被移除。沒有返回值,這是和pop的區(qū)別,當(dāng)移除項(xiàng)不存在與列表中時(shí),不會(huì)改變列表本身,并且會(huì)報(bào)錯(cuò)。

(12)列表方法:reverse

reverse方法將列表中的元素反向存放。

 

如果只想將列表反向迭代輸出,并不改變列表本身,那么可以用reversed()函數(shù)來完成

 

(13)列表方法:sort

對(duì)列表進(jìn)行排序,并改變列表本身。

字母和數(shù)字混在一起,是按照ASCII碼進(jìn)行排序。

如果想對(duì)列表進(jìn)行排序,但又不改變列表本身。那么有:

想通過賦值,將x.sort()結(jié)果賦值給y,但是y返回為空。說明這種賦值是不可行的,因?yàn)閟ort方法不返回任何值。

 

如果首先將x通過賦值,賦給y,再對(duì)y進(jìn)行sort()方法,希望通過此法對(duì)y進(jìn)行排序而不影響x本身。但是從結(jié)果看,對(duì)y的sort仍然影響到了x。原因是:通過y=x這種賦值形式,其實(shí)并沒有產(chǎn)生一個(gè)新的列表賦給y,而只是讓y指向了與x一樣的那個(gè)列表,即x和y都指向同一個(gè)列表。那么對(duì)y進(jìn)行排序操作,實(shí)質(zhì)上也是和x共同指向的那個(gè)列表進(jìn)行排序,所以也改變了x。

這種讓x產(chǎn)生一個(gè)副本,對(duì)副本進(jìn)行排序操作而不影響x本身的思路是正確的,只是賦值的形式不當(dāng)。

 

通過分片操作可以快速地將一個(gè)列表整體復(fù)制給另一個(gè)變量。

另一種獲取已排序的列表副本而不影響列表本身的方法是使用sorted函數(shù)。

 

sorted()是函數(shù),不是方法。因此不能像x.sotred()使用。

sorted()函數(shù)可以應(yīng)用于任何序列。

 

sort方法是默認(rèn)的按照升序進(jìn)行排序。如果需要自定義排序的方向,則可以使用內(nèi)建函數(shù)cmp()來實(shí)現(xiàn)。

cmp(x,y) 函數(shù)用于比較2個(gè)對(duì)象,如果x<y返回-1,如果x=y返回0,如果x>y返回1。

sort方法還有另外兩個(gè)可選參數(shù),key和reverse。

 

14、元組:

元組和列表一樣都是序列,唯一的不同是元組不能修改。

列表是通過方括號(hào)括起來,而元組則是通過圓括號(hào)括起來。

空列表是[],空元組是()

一個(gè)元素的元組(1,)-----也需要用一個(gè)逗號(hào),逗號(hào)非常重要

多個(gè)元素的元組(1,2,3,4)

如果一個(gè)元素,寫成(1),那么事實(shí)上它不是元組,是數(shù)1

 

(1)tuple函數(shù)

類似于列表中的list()函數(shù)

 

使用tuple函數(shù)時(shí),可以將字符串、列表拆分形成元組。

(2)創(chuàng)建元組

使用tuple()函數(shù)創(chuàng)建

列舉法創(chuàng)建

 

(3)訪問元組與元組分片

元組分片后還是元組。

 

(4)一般情況下,在不改變其內(nèi)容本身的時(shí)候,可以使用列表來代替元組。

但是,在兩個(gè)情況下,元組是不可替代的。

①元組在映射中可以當(dāng)做鍵使用,但是列表不行。

②元組作為很多內(nèi)建函數(shù)和方法的返回值存在。

15、小結(jié):

序列:一種數(shù)據(jù)結(jié)構(gòu),對(duì)其中的元素從0開始編號(hào),編號(hào)為-1為倒數(shù)第一個(gè)元素。

典型的序列是列表、字符串、元組。其中列表是可以修改的,而字符串和元組是不可以修改的,一旦創(chuàng)建就固定了。

可以通過分片操作訪問序列的單個(gè)元素或者多個(gè)元素。分片需要指定起始位置和終止位置。起始位置元素包含在分片內(nèi),終止位置元素不包含在分片內(nèi)。

 

相關(guān)文章

  • Pytorch如何切換 cpu和gpu的使用詳解

    Pytorch如何切換 cpu和gpu的使用詳解

    這篇文章主要介紹了Pytorch如何切換 cpu和gpu的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python中的時(shí)區(qū)問題

    python中的時(shí)區(qū)問題

    這篇文章主要介紹了python中的時(shí)區(qū)問題的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python 中如何寫注釋

    Python 中如何寫注釋

    這篇文章主要介紹了如何在 Python 中注釋,幫助其他開發(fā)者理解你的代碼,以及代碼的目的。感興趣的朋友可以了解下
    2020-08-08
  • python 保存float類型的小數(shù)的位數(shù)方法

    python 保存float類型的小數(shù)的位數(shù)方法

    今天小編就為大家分享一篇python 保存float類型的小數(shù)的位數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python異常處理、自定義異常、斷言原理與用法分析

    python異常處理、自定義異常、斷言原理與用法分析

    這篇文章主要介紹了python異常處理、自定義異常、斷言,結(jié)合實(shí)例形式分析了python異常處理、自定義異常、斷言相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • 深入了解python的tkinter實(shí)現(xiàn)簡(jiǎn)單登錄

    深入了解python的tkinter實(shí)現(xiàn)簡(jiǎn)單登錄

    這篇文章主要為大家介紹了python的tkinter實(shí)現(xiàn)簡(jiǎn)單登錄,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python通過BF算法實(shí)現(xiàn)關(guān)鍵詞匹配的方法

    python通過BF算法實(shí)現(xiàn)關(guān)鍵詞匹配的方法

    這篇文章主要介紹了python通過BF算法實(shí)現(xiàn)關(guān)鍵詞匹配的方法,實(shí)例分析了BF算法的原理與Python實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • python?包實(shí)現(xiàn)JSON?輕量數(shù)據(jù)操作

    python?包實(shí)現(xiàn)JSON?輕量數(shù)據(jù)操作

    這篇文章主要介紹了python?包實(shí)現(xiàn)JSON?輕量數(shù)據(jù)操作,文章介紹內(nèi)容首先將對(duì)象轉(zhuǎn)為json字符串展開主題詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • 淺析python字符串前加r、f、u、l 的區(qū)別

    淺析python字符串前加r、f、u、l 的區(qū)別

    這篇文章主要介紹了淺析python字符串前加r、f、u、l 的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 如何用Python來搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng)

    如何用Python來搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng)

    這篇文章主要介紹了如何用Python來搭建一個(gè)簡(jiǎn)單的推薦系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

灵川县| 加查县| 凤山市| 南安市| 柳江县| 建昌县| 北安市| 新建县| 兖州市| 绥阳县| 瑞昌市| 泰宁县| 杨浦区| 方城县| 桂阳县| 雷山县| 安化县| 彝良县| 西峡县| 历史| 彰化县| 句容市| 东乌| 文山县| 安图县| 洛川县| 信丰县| 白银市| 贡觉县| 滁州市| 仁布县| 普兰店市| 乌审旗| 晴隆县| 霍州市| 防城港市| 色达县| 台东市| 台州市| 茂名市| 临颍县|