国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python筆記之列表,元祖和集合

2019-11-06 07:51:18
字體:
來源:轉載
供稿:網友

辛苦堆砌,轉載請注明出處,謝謝!

上一篇文章介紹了Python的基本數據類型和控制流,本篇開始,說說Python更復雜的數據類型,不過這里的復雜是指其具有一定的結構,并不是說這些數據類型真的很難,實際上還是很簡單的,主要包括列表,元祖,集合和字典?;谶@些數據類型,我們可以有效地組織數據,并進行靈活的處理。

先來看看我們的列表。

什么是列表?

列表是用[]括起來,用,分割的一系列數據,如

[1, True, 'abc', [2, False, 'def']]

可以看到,列表并不要求其內放置相同類型的數據,但是我們在實際使用中,一般都會放置相同類型的數據,以便于我們進行處理。如

[1, 2, 3]或者['abc', 'def']

如何對列表取值或修改?

(1) 獲取列表長度

使用len()全局方法,len()方法還可以用來測量字符串,元祖以及字典的長度

>>> len([1,2,3])3

(2)列表下標操作

我們可以使用下標對列表進行操作,列表第一個元素的下標為0,第二個為1,以此類推,也可以使用負數,-1代表倒數第一個元素,-2代表倒是第二個元素,以此類推。

我們下面的例子假設都使用列表[1,2,3]進行,賦值給變量a,利用下標讀取值:

>>> a[1]2

>>> a[-3]1

修改對應下標處的值(后續修改操作后記得執行a=[1,2,3],將a變量還原)

>>> a[1]=4>>> a[1, 4, 3]

刪除對應下標處的元素,使用del語句

>>> del a[1]>>> a[1, 3]

通過下標截取子列表,使用start_index:end_index作為下標作用于列表即可,注意,取得的子列表不包括end_index對應的元素,也就是子列表區間為[start_index, end_index),另外,我們可以省略start_index,表示從0開始,省略end_index,表示到達列表末尾

>>> a[1:3][2, 3]

>>> a[:2][1, 2]

>>> a[1:][2, 3]

>>> a[:][1, 2, 3]

>>> a[-2:][2, 3]

執行截取子列表操作之后,看看a的值

>>> a[1, 2, 3]

a并沒有被改變,而是生成了新的子列表,千萬注意。

(3)列表的連接

>>> a=[1,2,3]>>> b=[4,5,6]>>> a+b[1, 2, 3, 4, 5, 6]

(4) 列表的復制

>>> a*3[1, 2, 3, 1, 2, 3, 1, 2, 3]

(5)列表的常用方法

看到這里,熟悉面向對象的人應該能夠想到,如果列表有方法,那么列表實際上是一種Python的類,的確如此

>>> a.__class__<class 'list'>

我們先不去關注Python面向對象編程的部分,畢竟不面向對象的Python已經能夠解決我們的很多問題了。我們只是去看看list,也就是列表類,有哪些常用的操作。由于這些list類的方法,會直接改變列表的內容。在IDLE輸入help(list)可以輸出list類的手冊,可以更深入的了解列表的方法。先執行

>>> a=[1,2,3]

(a) 查找對應值的下標值

>>> a.index(2)1

如果值不存在,Python會拋出錯誤ValueError

>>> a.index(4)Traceback (most recent call last):  File "<pyshell#35>", line 1, in <module>    a.index(4)ValueError: 4 is not in list

(b)列表尾添加值

>>> a.append(4)>>> a[1, 2, 3, 4]

(c)列表插入值

>>> a.insert(1, 4)>>> a[1, 4, 2, 3]

insert方法的第一個參數是要插入的下標位置,第二個參數是要插入的值。

(d)刪除值

>>> a[1, 4, 2, 3]>>> a.remove(4)>>> a[1, 2, 3]

這里注意和前面del區分,del再知道下標時很好用,刪除對應下標的值,remove則處理知道值但不知道下標的情況。

如果刪除不存在的值,會報錯

>>> a.remove(4)Traceback (most recent call last):  File "<pyshell#44>", line 1, in <module>    a.remove(4)ValueError: list.remove(x): x not in list

如果列表有重復值,刪除會怎樣?

>>> a=[1,2,3,4,3]>>> a.remove(3)>>> a[1, 2, 4, 3]

刪除了第一個匹配的元素

(e)排序

>>> a=[2,3,1,7]>>> a.sort()>>> a[1, 2, 3, 7]

(6)列表的使用

(a) 用于循環,可以使用in遍歷a中的所有元素

>>> a=[1,2,3]

>>> for b in a:    PRint(b, end=' ')

輸出1 2 3

(b) 多重賦值

如果我們想把列表中的值分別賦值給多個變量,我們沒必要這樣

>>> a[1, 2, 3]>>> b=a[0]>>> c=a[1]>>> d=a[2]

只需要一條語句即可

>>> b,c,d=a

(c) 判斷某個值是否在列表中,用in和not in進行操作

>>> 1 in aTrue>>> 4 in aFalse>>> 1 not in aFalse>>> 4 not in aTrue

以上就是列表的內容,了解了列表,元祖就相當簡單了,元祖就是只讀的列表,不能對其進行修改,只能獲取值,只要記住這一點就足夠了,元祖用()擴住,逗號分隔,如(1,2,3),但是如果元祖只有一個值,一定寫成(1,),后面加一個逗號,否則,Python會認為1是用括號擴住的常數1。列表和元祖之間可以相互轉換

>>> a[1, 2, 3]

>>> tuple(a)(1, 2, 3)>>> list(a)[1, 2, 3]

最后再來了解一下set,也就是集合,集合和列表類似,可以修改,也可以添加元素,差別在于,列表是一個有序的雙向隊列,集合無序;列表可以保存重復的元素,而集合不行,如果有重復元素,集合只會保留一個。集合是用{}括起來,用逗號分隔的單個值,這里記住是單個值,以方便和后面的字典區分。如{1,2,3}

元祖,列表和集合三者可以相互轉換,因為他們都是一維的數據結構

>>> a[1, 2, 3]>>> tuple(a)(1, 2, 3)>>> set(a){1, 2, 3}>>> list(a)[1, 2, 3]

集合類的可操作方法不多,可以help(set)查看,另外,由于集合無序,所以不能使用下標進行索引,也沒有sort()方法;集合不能有重復元素,所以集合不能進行復制,總之,記住集合無序且不能有重復,所以列表中與順序和重復有關的操作,集合都是不合法的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿巴嘎旗| 云安县| 正镶白旗| 米林县| 黄浦区| 洛阳市| 平邑县| 石台县| 延边| 公安县| 荃湾区| 临高县| 丽江市| 开化县| 承德县| 普定县| 稻城县| 梓潼县| 安新县| 富裕县| 昌邑市| 靖宇县| 栾川县| 长治县| 灵台县| 资阳市| 新昌县| 竹北市| 揭阳市| 和林格尔县| 澄江县| 尤溪县| 平塘县| 九寨沟县| 澳门| 曲麻莱县| 青州市| 吐鲁番市| 增城市| 宣化县| 开阳县|