摘要:計算列表所有元素的和,其元素類型必須是數值型的整數浮點數返回一個排序的列表,但并不改變原列表。只有列表所有元素為才返回。列表的內置方法前面我們說的是語言的內置函數,這里我們講的是列表本身的內置方法。
Python的基本數據類型有整數,浮點數,布爾,字符串,它們是最基本的數據。在實際編程中,我們要經常組織由很多基本數據組成的集合,這些集合的不同組織方式就是:數據結構,今天講的是數據結構中的Python list(列表)。數據結構就是一些數據組合得到的“復合”數據類型。
Python內置的數據結構有:
列表(list)
元組(tuple)
字典(dict)
集合(set)
在Python語言中,以上4種數據結構和基礎數據類型(整數、浮點數等)統稱為“內置類型”(Built-in Types)。
Python list(列表)Python list(列表),是Python中最常用的一種數據結構,它是一組用方括號括起來、逗號分隔的數據。列表的元素可以是任何類型的,但使用時通常各個元素的類型是相同的。下面的列表有5個元素,元素類型分別是字符串、整數、浮點數和列表:
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)
列表就像一個叫號排隊的隊伍,從頭到尾每個元素都有一個遞增的號碼,這個號碼就是對應元素的“索引”(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
列表這個隊伍也可以從隊尾往前叫號,也就是倒序叫號,這時候索引都是負的(負索引),隊尾元素的索引s是-1,倒數第二個是-2,依次向前遞減。
In [25]: list_a[-1] Out[25]: [1, 2] In [26]: list_a[-2] Out[26]: 8.9
Python列表的索引可以是正索引(從頭到尾),也可以是負索引(從尾到頭),總結為下面的關系:
列表: ["a", "b", "c", "d", "e"] | | | | | 正索引: 0 1 2 3 4 負索引: -5 -4 -3 -2 -1
通過索引我們可以訪問到某個元素,那么我們就可以修改這個元素。沒錯,列表里面的元素是可以被修改的,相當于你先替別人排了個隊,他來了就把你替換了。
In [31]: list_b = ["a", "b", "c"] In [32]: list_b[1] = 2 In [33]: list_b Out[33]: ["a", 2, "c"]list(列表)的切片(slicing)
通過索引,我們可以訪問list(列表)的單個元素。但有時候我們要取列表的一個片段,這就是“切片”操作。切片返回的是一個列表,可以理解為“子列表”。
切片是通過索引來實現的,比如:?list_a[1:3],這里索引變成兩個用冒號:分隔,分別是切片的開始索引和結束索引,[1:3]代表的是一個左開右閉區間,即包含左邊索引的元素,到右邊索引為止但不包括該元素。那么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)開始,右邊缺失就是后面的全部。
list運算符列表作為Python的一種“內置類型”,它也像基本類型數字、字符串那樣可以進行一些運算符的運算,如下表所示:
運算符 | 含義 | 表達式 | 結果 |
---|---|---|---|
+ | 列表合并在一起 | ["a", "b", "c"] + [1, 2, 3] | ["a", "b", "c", 1, 2, 3] |
* | 列表重復 | ["a"] * 3 | ["a", "a", "a"] |
in | 是否為列表元素 | "a" in ["a", "b"] | True |
從頭到尾遍歷(迭代)一個list的語法是:for x in list:
for x in [1, 2, 3]: print(x)刪除list(列表)
(1)刪除整個列表
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的一個保留關鍵字,用于刪除(delete)對象。Python里面的所有東西都是對象,所有del可以用于刪除變量、列表等等。
(2)刪除列表的一個或多個元素
In [41]: list_a = ["a", "b", 3, 8.9, [1,2]] In [42]: del list_a[0] # 刪除一個元素 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(列表)推導式
處理一個序列中的所有或部分元素并返回結果列表的一種緊湊寫法。見下面的例子:
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的過程是把0~10之間的數字都乘以2變成偶數;
生成even2的過程是從0~20之間挑選出偶數。
這兩個都是列表推導式,并且后面的是加了if條件只處理原列表的部分元素。
list(列表)相關的內置函數Python內置函數中有一些可以對list進行操作,它們是:
(1)len()
計算列表的長度,即計算列表元素的個數)
In [55]: len([1,2,3]) Out[55]: 3
(2)max()
返回列表元素中的最大值,列表元素必須是同一類型且可比較,比如都是數字型的,或都是字符串,如果類型不統一就會報錯:
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()
計算列表所有元素的和,其元素類型必須是數值型的(整數、浮點數)
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()
返回一個排序的列表,但并不改變原列表。
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()
生成一個空列表,或把其它類型數據轉換成list。
In [69]: list() Out[69]: [] In [70]: list("python") Out[70]: ["p", "y", "t", "h", "o", "n"]
(7)any()
只要列表中有一個元素是True就返回True。
In [72]: any([0, "", "3"]) Out[72]: True
(8)all()
只有列表所有元素為True才返回True。
In [73]: all([0, "", "3"]) Out[73]: False In [74]: all([3, "a", True]) Out[74]: Truelist(列表)的內置方法
前面我們說的是Python語言的“內置函數”,這里我們講的是列表本身的“內置方法”。函數和方法有什么區別呢?
函數: 是一系列語句的集合,調用后可以返回一個或一些值。可以給它傳遞0個或多個參數,這些參數可能被用于函數內部的執行過程。
方法: 就是定義在類內部的函數。很明顯,方法是與某個對象關聯的。方法的調用方法就是在對象后面加.再加方法名稱。
Python中的一切都是對象,列表也不例外,那自然列表也有其自有的方法,總結為下表:
方法 | 功能 | 示例 | 結果 |
---|---|---|---|
append() | 把一個元素加到列表的尾部 | a=[1,2];a.append("a") | a變為?[1,2,"a"] |
insert() | 把一個元素加到列表的特定位置 | a=[1,2]; a.insert(1, "c") | a變為:[1, "c", 2] |
remove() | 刪除第一個出現的某元素 | a=[1,2]; a.remove(2) | a變為:[1] |
pop() | 刪除并返回某個位置(索引)的元素 | a=[1,2];a.pop(1) | a變為:[1] |
clear() | 清空列表 | a=[1,2];a.clear() | a變為:[] |
index() | 返回遇到的第一個某值的索引, | ||
如果列表不包含該值則拋出錯誤 | a=[1,1,1];a.index(1) | 返回0 | |
count() | 返回列表中某值的個數 | a=[1,1,2];a.count(1) | 返回2 |
sort() | 對列表進行排序 | a=[3,2,1];a.sort() | a變為:[1,2,3] |
reverse() | 將列表倒置 | a=[2,1,3];a.reverse() | a變為:[3,1,2] |
列表是Python中最常用的數據結構之一,主要用于數據的順序存儲。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43777.html
摘要:第二個索引元素不在分片內。顯示操作索引指向第個元素,第個元素不存在。序列加法乘法表示個空列表空列表用初始化成員資格運算符布爾運算符,檢查值是否在序列中。修改列表,沒有返回值。在原位置對列表排序。 序列 例: Edward = [abc, 12] 序列中的所有元素都是有編號的,從0開始遞增。 Note: 使用負數索引-1,Python會從右邊,也就是從最后一個元素開始計數。最后一個元素...
摘要:計算元組所有元素的和,其元素類型必須是數值型的整數,浮點數返回一個排序的列表,但并不改變原元組。只有元組所有元素為才返回。 元組(元組)跟列表(名單)非常相似,二者之間的差異就是元組不可改變,列表是可以改變的。 showImg(https://segmentfault.com/img/remote/1460000019153442); 創建元組(元組) 跟列表的中括號不同,元組用圓括號...
摘要:字典的創建字典可以通過或一對花括號創建一個空字典。方法是字典對象名稱加方括號括起來的鍵名,比如。空字典的長度是和類似于對列表的操作,不過這兩個函數檢驗的是字典的鍵。修改了字典并沒有重新獲取,但是已經反應了變化,多了返回值的對象,。 字典(dict, dictionary的簡寫)是Python中另一個非常重要的內置數據類型,是Python中映射類型(Mapping Type),它把鍵(k...
摘要:布爾值布爾值和布爾代數的表示完全一致,一個布爾值只有兩種值的數據類型可以通過內置的函數查詢,例如還可以用來判斷和的區別在于不會認為子類是一種父類類型。會認為子類是一種父類類型。基本功能是進行成員關系測試和刪除重復元素。 ...
摘要:引入需要的模塊,配置圖片路徑,設置界面寬高背景顏色,創建游戲主入口。 1.引入需要的模塊,配置圖片路徑,設置界面寬高背景顏色,創建游戲主入口。 showImg(https://segmentfault.com/img/bVbuYZU?w=662&h=357); #1引入需要的模塊 import pygame import random #1配置圖片地址 IMAGE_PATH = img...
閱讀 2296·2021-11-24 10:18
閱讀 2730·2021-11-19 09:59
閱讀 1717·2019-08-30 15:53
閱讀 1196·2019-08-30 15:53
閱讀 1078·2019-08-30 14:19
閱讀 2488·2019-08-30 13:14
閱讀 3024·2019-08-30 13:00
閱讀 1957·2019-08-30 11:11