摘要:計(jì)算列表所有元素的和,其元素類型必須是數(shù)值型的整數(shù)浮點(diǎn)數(shù)返回一個(gè)排序的列表,但并不改變?cè)斜怼V挥辛斜硭性貫椴欧祷亍A斜淼膬?nèi)置方法前面我們說(shuō)的是語(yǔ)言的內(nèi)置函數(shù),這里我們講的是列表本身的內(nèi)置方法。
Python的基本數(shù)據(jù)類型有整數(shù),浮點(diǎn)數(shù),布爾,字符串,它們是最基本的數(shù)據(jù)。在實(shí)際編程中,我們要經(jīng)常組織由很多基本數(shù)據(jù)組成的集合,這些集合的不同組織方式就是:數(shù)據(jù)結(jié)構(gòu),今天講的是數(shù)據(jù)結(jié)構(gòu)中的Python list(列表)。數(shù)據(jù)結(jié)構(gòu)就是一些數(shù)據(jù)組合得到的“復(fù)合”數(shù)據(jù)類型。
Python內(nèi)置的數(shù)據(jù)結(jié)構(gòu)有:
列表(list)
元組(tuple)
字典(dict)
集合(set)
在Python語(yǔ)言中,以上4種數(shù)據(jù)結(jié)構(gòu)和基礎(chǔ)數(shù)據(jù)類型(整數(shù)、浮點(diǎn)數(shù)等)統(tǒng)稱為“內(nèi)置類型”(Built-in Types)。
Python list(列表)Python list(列表),是Python中最常用的一種數(shù)據(jù)結(jié)構(gòu),它是一組用方括號(hào)括起來(lái)、逗號(hào)分隔的數(shù)據(jù)。列表的元素可以是任何類型的,但使用時(shí)通常各個(gè)元素的類型是相同的。下面的列表有5個(gè)元素,元素類型分別是字符串、整數(shù)、浮點(diǎn)數(shù)和列表:
In [15]: list_a = ["a", "b", 3, 8.9, [1,2]] In [16]: list_a Out[16]: ["a", "b", 3, 8.9, [1, 2]]list(列表)的索引(index)
列表就像一個(gè)叫號(hào)排隊(duì)的隊(duì)伍,從頭到尾每個(gè)元素都有一個(gè)遞增的號(hào)碼,這個(gè)號(hào)碼就是對(duì)應(yīng)元素的“索引”(index)。與我們生活中不同的是,列表的第一元素的索引是0。
In [22]: list_a[0] Out[22]: "a" In [23]: list_a[1] Out[23]: "b" In [24]: list_a[3] Out[24]: 8.9
列表這個(gè)隊(duì)伍也可以從隊(duì)尾往前叫號(hào),也就是倒序叫號(hào),這時(shí)候索引都是負(fù)的(負(fù)索引),隊(duì)尾元素的索引s是-1,倒數(shù)第二個(gè)是-2,依次向前遞減。
In [25]: list_a[-1] Out[25]: [1, 2] In [26]: list_a[-2] Out[26]: 8.9
Python列表的索引可以是正索引(從頭到尾),也可以是負(fù)索引(從尾到頭),總結(jié)為下面的關(guān)系:
列表: ["a", "b", "c", "d", "e"] | | | | | 正索引: 0 1 2 3 4 負(fù)索引: -5 -4 -3 -2 -1
通過(guò)索引我們可以訪問(wèn)到某個(gè)元素,那么我們就可以修改這個(gè)元素。沒(méi)錯(cuò),列表里面的元素是可以被修改的,相當(dāng)于你先替別人排了個(gè)隊(duì),他來(lái)了就把你替換了。
In [31]: list_b = ["a", "b", "c"] In [32]: list_b[1] = 2 In [33]: list_b Out[33]: ["a", 2, "c"]list(列表)的切片(slicing)
通過(guò)索引,我們可以訪問(wèn)list(列表)的單個(gè)元素。但有時(shí)候我們要取列表的一個(gè)片段,這就是“切片”操作。切片返回的是一個(gè)列表,可以理解為“子列表”。
切片是通過(guò)索引來(lái)實(shí)現(xiàn)的,比如:?list_a[1:3],這里索引變成兩個(gè)用冒號(hào):分隔,分別是切片的開(kāi)始索引和結(jié)束索引,[1:3]代表的是一個(gè)左開(kāi)右閉區(qū)間,即包含左邊索引的元素,到右邊索引為止但不包括該元素。那么list_a[1:3]得到的是["b", 3]:
In [27]: list_a[1:3] Out[27]: ["b", 3] In [28]: list_a[:3] Out[28]: ["a", "b", 3] In [29]: list_a[1:] Out[29]: ["b", 3, 8.9, [1, 2]] In [30]: list_a[:] Out[30]: ["a", "b", 3, 8.9, [1, 2]]
上面例子中,切片范圍的起止索引可以是缺失的,左邊缺失就是從頭(0)開(kāi)始,右邊缺失就是后面的全部。
list運(yùn)算符列表作為Python的一種“內(nèi)置類型”,它也像基本類型數(shù)字、字符串那樣可以進(jìn)行一些運(yùn)算符的運(yùn)算,如下表所示:
運(yùn)算符 | 含義 | 表達(dá)式 | 結(jié)果 |
---|---|---|---|
+ | 列表合并在一起 | ["a", "b", "c"] + [1, 2, 3] | ["a", "b", "c", 1, 2, 3] |
* | 列表重復(fù) | ["a"] * 3 | ["a", "a", "a"] |
in | 是否為列表元素 | "a" in ["a", "b"] | True |
從頭到尾遍歷(迭代)一個(gè)list的語(yǔ)法是:for x in list:
for x in [1, 2, 3]: print(x)刪除list(列表)
(1)刪除整個(gè)列表
In [35]: list_a = ["a", "b", 3, 8.9, [1,2]] In [36]: del list_a In [37]: list_a --------------------------------------------------------------------------- NameError Traceback (most recent call last)in ----> 1 list_a NameError: name "list_a" is not defined
del是Python的一個(gè)保留關(guān)鍵字,用于刪除(delete)對(duì)象。Python里面的所有東西都是對(duì)象,所有del可以用于刪除變量、列表等等。
(2)刪除列表的一個(gè)或多個(gè)元素
In [41]: list_a = ["a", "b", 3, 8.9, [1,2]] In [42]: del list_a[0] # 刪除一個(gè)元素 In [43]: list_a Out[43]: ["b", 3, 8.9, [1, 2]] In [44]: del list_a[1:3] # 刪除切片 In [45]: list_a Out[45]: ["b", [1, 2]]list(列表)推導(dǎo)式
處理一個(gè)序列中的所有或部分元素并返回結(jié)果列表的一種緊湊寫(xiě)法。見(jiàn)下面的例子:
In [50]: even = [2 * i for i in range(10)] In [51]: even Out[51]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] In [52]: even2 = [i for i in range(20) if i % 2 == 0] In [53]: even2 Out[53]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
生成even的過(guò)程是把0~10之間的數(shù)字都乘以2變成偶數(shù);
生成even2的過(guò)程是從0~20之間挑選出偶數(shù)。
這兩個(gè)都是列表推導(dǎo)式,并且后面的是加了if條件只處理原列表的部分元素。
list(列表)相關(guān)的內(nèi)置函數(shù)Python內(nèi)置函數(shù)中有一些可以對(duì)list進(jìn)行操作,它們是:
(1)len()
計(jì)算列表的長(zhǎng)度,即計(jì)算列表元素的個(gè)數(shù))
In [55]: len([1,2,3]) Out[55]: 3
(2)max()
返回列表元素中的最大值,列表元素必須是同一類型且可比較,比如都是數(shù)字型的,或都是字符串,如果類型不統(tǒng)一就會(huì)報(bào)錯(cuò):
In [57]: max(["a", "b", "c"]) Out[57]: "c" In [58]: max([1,2,"a"]) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 max([1,2,"a"]) TypeError: ">" not supported between instances of "str" and "int"
(3)min()
返回列表元素中的最小值。元素類型要求跟max()一樣。
In [59]: min([1,2,3]) Out[59]: 1 In [60]: min(["a", "b", "c"]) Out[60]: "a" In [61]: min([1,2,"a"]) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 min([1,2,"a"]) TypeError: "<" not supported between instances of "str" and "int"
(4)sum()
計(jì)算列表所有元素的和,其元素類型必須是數(shù)值型的(整數(shù)、浮點(diǎn)數(shù))
In [63]: sum([1,2,3]) Out[63]: 6 In [64]: sum([1.2, 3.2, 4.3]) Out[64]: 8.7 In [65]: sum(["a", "b", "c"]) --------------------------------------------------------------------------- TypeError Traceback (most recent call last)in ----> 1 sum(["a", "b", "c"]) TypeError: unsupported operand type(s) for +: "int" and "str"
(5)sorted()
返回一個(gè)排序的列表,但并不改變?cè)斜怼?/p>
In [66]: sorted([3, 9, 0, 5]) Out[66]: [0, 3, 5, 9] In [68]: sorted(["python", "yuanrenxue", "good"]) Out[68]: ["good", "python", "yuanrenxue"]
(6)list()
生成一個(gè)空列表,或把其它類型數(shù)據(jù)轉(zhuǎn)換成list。
In [69]: list() Out[69]: [] In [70]: list("python") Out[70]: ["p", "y", "t", "h", "o", "n"]
(7)any()
只要列表中有一個(gè)元素是True就返回True。
In [72]: any([0, "", "3"]) Out[72]: True
(8)all()
只有列表所有元素為T(mén)rue才返回True。
In [73]: all([0, "", "3"]) Out[73]: False In [74]: all([3, "a", True]) Out[74]: Truelist(列表)的內(nèi)置方法
前面我們說(shuō)的是Python語(yǔ)言的“內(nèi)置函數(shù)”,這里我們講的是列表本身的“內(nèi)置方法”。函數(shù)和方法有什么區(qū)別呢?
函數(shù): 是一系列語(yǔ)句的集合,調(diào)用后可以返回一個(gè)或一些值。可以給它傳遞0個(gè)或多個(gè)參數(shù),這些參數(shù)可能被用于函數(shù)內(nèi)部的執(zhí)行過(guò)程。
方法: 就是定義在類內(nèi)部的函數(shù)。很明顯,方法是與某個(gè)對(duì)象關(guān)聯(lián)的。方法的調(diào)用方法就是在對(duì)象后面加.再加方法名稱。
Python中的一切都是對(duì)象,列表也不例外,那自然列表也有其自有的方法,總結(jié)為下表:
方法 | 功能 | 示例 | 結(jié)果 |
---|---|---|---|
append() | 把一個(gè)元素加到列表的尾部 | a=[1,2];a.append("a") | a變?yōu)?[1,2,"a"] |
insert() | 把一個(gè)元素加到列表的特定位置 | a=[1,2]; a.insert(1, "c") | a變?yōu)椋?b>[1, "c", 2] |
remove() | 刪除第一個(gè)出現(xiàn)的某元素 | a=[1,2]; a.remove(2) | a變?yōu)椋?b>[1] |
pop() | 刪除并返回某個(gè)位置(索引)的元素 | a=[1,2];a.pop(1) | a變?yōu)椋?b>[1] |
clear() | 清空列表 | a=[1,2];a.clear() | a變?yōu)椋?b>[] |
index() | 返回遇到的第一個(gè)某值的索引, | ||
如果列表不包含該值則拋出錯(cuò)誤 | a=[1,1,1];a.index(1) | 返回0 | |
count() | 返回列表中某值的個(gè)數(shù) | a=[1,1,2];a.count(1) | 返回2 |
sort() | 對(duì)列表進(jìn)行排序 | a=[3,2,1];a.sort() | a變?yōu)椋?b>[1,2,3] |
reverse() | 將列表倒置 | a=[2,1,3];a.reverse() | a變?yōu)椋?b>[3,1,2] |
列表是Python中最常用的數(shù)據(jù)結(jié)構(gòu)之一,主要用于數(shù)據(jù)的順序存儲(chǔ)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/43777.html
摘要:第二個(gè)索引元素不在分片內(nèi)。顯示操作索引指向第個(gè)元素,第個(gè)元素不存在。序列加法乘法表示個(gè)空列表空列表用初始化成員資格運(yùn)算符布爾運(yùn)算符,檢查值是否在序列中。修改列表,沒(méi)有返回值。在原位置對(duì)列表排序。 序列 例: Edward = [abc, 12] 序列中的所有元素都是有編號(hào)的,從0開(kāi)始遞增。 Note: 使用負(fù)數(shù)索引-1,Python會(huì)從右邊,也就是從最后一個(gè)元素開(kāi)始計(jì)數(shù)。最后一個(gè)元素...
摘要:計(jì)算元組所有元素的和,其元素類型必須是數(shù)值型的整數(shù),浮點(diǎn)數(shù)返回一個(gè)排序的列表,但并不改變?cè)M。只有元組所有元素為才返回。 元組(元組)跟列表(名單)非常相似,二者之間的差異就是元組不可改變,列表是可以改變的。 showImg(https://segmentfault.com/img/remote/1460000019153442); 創(chuàng)建元組(元組) 跟列表的中括號(hào)不同,元組用圓括號(hào)...
摘要:字典的創(chuàng)建字典可以通過(guò)或一對(duì)花括號(hào)創(chuàng)建一個(gè)空字典。方法是字典對(duì)象名稱加方括號(hào)括起來(lái)的鍵名,比如。空字典的長(zhǎng)度是和類似于對(duì)列表的操作,不過(guò)這兩個(gè)函數(shù)檢驗(yàn)的是字典的鍵。修改了字典并沒(méi)有重新獲取,但是已經(jīng)反應(yīng)了變化,多了返回值的對(duì)象,。 字典(dict, dictionary的簡(jiǎn)寫(xiě))是Python中另一個(gè)非常重要的內(nèi)置數(shù)據(jù)類型,是Python中映射類型(Mapping Type),它把鍵(k...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類型可以通過(guò)內(nèi)置的函數(shù)查詢,例如還可以用來(lái)判斷和的區(qū)別在于不會(huì)認(rèn)為子類是一種父類類型。會(huì)認(rèn)為子類是一種父類類型。基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...
摘要:引入需要的模塊,配置圖片路徑,設(shè)置界面寬高背景顏色,創(chuàng)建游戲主入口。 1.引入需要的模塊,配置圖片路徑,設(shè)置界面寬高背景顏色,創(chuàng)建游戲主入口。 showImg(https://segmentfault.com/img/bVbuYZU?w=662&h=357); #1引入需要的模塊 import pygame import random #1配置圖片地址 IMAGE_PATH = img...
閱讀 2291·2021-11-24 10:18
閱讀 2721·2021-11-19 09:59
閱讀 1712·2019-08-30 15:53
閱讀 1188·2019-08-30 15:53
閱讀 1071·2019-08-30 14:19
閱讀 2482·2019-08-30 13:14
閱讀 3005·2019-08-30 13:00
閱讀 1938·2019-08-30 11:11