- Python程序設(shè)計(jì)案例課堂
- 劉春茂
- 2041字
- 2020-11-28 15:11:23
3.1 列表的基本操作
列表(list)對(duì)象屬于序數(shù)對(duì)象,它是一群有序?qū)ο蟮募?,并且可以使用?shù)字來(lái)做索引。列表對(duì)象可以做新增、修改和刪除的操作。
3.1.1 列表對(duì)象的特性
列表由一系列按特定順序排列的元素組成。在Python中,用方括號(hào)[]來(lái)表示列表,用逗號(hào)來(lái)分割其中的元素。
例如:
>>>s=["溪云初起日沉閣,", "山雨欲來(lái)風(fēng)滿(mǎn)樓。"] >>>print(s) [’溪云初起日沉閣,', ’山雨欲來(lái)風(fēng)滿(mǎn)樓。']
從結(jié)果可以看出,Python不僅輸出列表的內(nèi)容,還包括方括號(hào)。
列表的常見(jiàn)特性如下。
(1)列表對(duì)象中的元素,可以是不同的類(lèi)型。
例如:
>>>s=[1, "Hello",2.1,2+3j]
(2)列表對(duì)象中的元素,可以是另一個(gè)列表。
例如:
>>>s = [1, "Hello",2.1, ["A", "B", "C"]]
(3)列表對(duì)象中使用與字符串對(duì)象相同的運(yùn)算符。
例如:
>>>s = [1, "Hello",2.1, ["A", "B", "C"]] >>>s[3] ['A', 'B', 'C']
(4)要讀取列表對(duì)象中的另一個(gè)列表,使用另一個(gè)中括號(hào)[]來(lái)做索引。
例如:
>>> s = [1, "Hello",2.1, ["A", "B", "C"]] >>>s[3][1] 'B'
(5)可以使用列表對(duì)象的index(c)方法(c是元素的內(nèi)容)來(lái)返回該元素的索引值。
例如:
>>>s = [1, "Hello",2.1, ["A", "B", "C"]] >>> s.index("Hello") 1 >>> s.index(1) 0
(6)可以修改列表對(duì)象的元素。
例如:
>>> s = [1, "Hello",2.1, ["A", "B", "C"]] >>> s[1] = "Welcome" >>> s [1, 'Welcome', 2.1, ['A', 'B', 'C']]
(7)可以在列表對(duì)象中插入新元素。
例如:
>>> s = [1, "Hello",2.1, ["A", "B", "C"]] >>> s[4:] = [123, "ok"] #4:表示從左側(cè)數(shù)第5個(gè)位置開(kāi)始添加新元素 >>> s [1, 'Hello', 2.1, ['A', 'B', 'C'], 123, 'ok']
(8)也可以使用列表對(duì)象的insert()方法來(lái)插入新元素。
例如:
>>> s = [1, "Hello",2.1, ["A", "B", "C"]] >>> s.insert(1, "A") >>> s [1, 'A', 'Hello', 2.1, ['A', 'B', 'C']]
(9)可以使用del語(yǔ)句來(lái)刪除列表對(duì)象中的元素。
例如:
>>> s = [1, "Hello",2.1, ["A", "B", "C"]] >>> del s[1] >>> s [1,2.1, ['A', 'B', 'C']] >>> del s[-1] #-1表示從右側(cè)數(shù)第一個(gè)元素 >>> s [1,2.1]
(10)讀者可以像使用其他變量一樣使用列表中的各個(gè)值。
例如:
>>>s=["藍(lán)色", "綠色", "紅色", "黃色", "紫色"] >>>ss="我最喜歡的顏色是"+s[0].title() >>> print(ss) 我最喜歡的顏色是藍(lán)色
3.1.2 列表包容
從Python 2.0開(kāi)始,可以使用列表包容(list comprehension)的功能。所謂列表包容,是使用列表內(nèi)的元素來(lái)創(chuàng)建新的列表。其語(yǔ)法如下:
[ expression for expression1 in sequence1 [for expression2 in sequence2] [...for expressionN in sequenceN] [if condition] ]
sequence代表序數(shù)對(duì)象,如字符串、元組、列表等。列表包容后,新列表的元素?cái)?shù)目是所有序數(shù)對(duì)象的元素?cái)?shù)目相乘的結(jié)果。
下列案例將letters字符串對(duì)象與lst列表對(duì)象做列表包容,從而創(chuàng)建一個(gè)新的列表對(duì)象。
>>> letters = "py" >>> lst = [1,2,3,4] >>> [ (x, y) for x in letters for y in lst] [('p', 1), ('p', 2), ('p', 3), ('p', 4), ('y', 1), ('y', 2), ('y', 3), ('y',4)]
在本案例中,letters字符串對(duì)象有2個(gè)元素,lst列表對(duì)象有4個(gè)元素,列表包容產(chǎn)生的新列表有8個(gè)元素。
3.1.3 列表的操作符
列表的常用操作符包括+和*。其中列表對(duì)+和*的應(yīng)用與字符串相似,+號(hào)用于組合列表,*號(hào)用于重復(fù)列表。
+號(hào)運(yùn)算的示例如下:
>>>[1,2,3]+ [4,5,6] [1, 2, 3, 4, 5, 6]
*號(hào)運(yùn)算的示例如下:
>>>[1,2,3]* 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
3.1.4 列表的函數(shù)和方法
列表對(duì)象有許多內(nèi)置函數(shù)和方法,下面學(xué)習(xí)這些函數(shù)和方法的使用技巧。
1.列表的函數(shù)
列表內(nèi)置的函數(shù)包括len()、max()、min()和list()。
(1)len()函數(shù)返回列表的長(zhǎng)度。例如:
>>>list1 =[1, 2, 3] >>>print (len(list1)) 3
(2)max()函數(shù)返回列表元素中的最大值。例如:
>>> list1=[1, 2, 3, 4] >>> print (max(list1)) 4 >>> list2=['a', 'c', 'd', 'p'] >>> print (max(list2)) p
注意
只有當(dāng)列表中的元素?cái)?shù)據(jù)類(lèi)型一致時(shí),才能使用max()函數(shù),否則會(huì)出錯(cuò)。
例如:
>>> list1=[1, 2, 3, 4, 'a'] >>> print (max(list1)) Traceback (most recent call last): File "<pyshell#48>", line 1, in <module> print (max(list1)) TypeError: unorderable types: str() > int()
(3)min()函數(shù)返回列表元素中的最小值。例如:
>>> list1=[1, 2, 3, 4] >>> print (min(list1)) 1 >>> list2=['a', 'c', 'd', 'p'] >>> print (min(list2)) a
(4)list()函數(shù)用于將元組轉(zhuǎn)換為列表。元組與列表非常類(lèi)似,區(qū)別在于元組的元素值不能修改。元組是放在括號(hào)中,列表是放于方括號(hào)中。例如:
>>>books = (59, ’清華大學(xué)出版社’, 'Python', ’教材’) >>>list1 = list(books) >>>print ("圖書(shū)信息為: ", list1) 圖書(shū)信息為: [59, ’清華大學(xué)出版社’, 'Python', ’教材’]
2.列表的方法
在Python解釋器內(nèi)輸入dir([]),就可以顯示這些內(nèi)置方法。
>>> dir([]) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
下面將挑選最常用的方法進(jìn)行介紹。
1)append(object)
append()方法在列表對(duì)象的結(jié)尾,加上新對(duì)象object。例如:
>>>lst = [1,2,3] >>>lst.append(5) >>> lst [1, 2, 3, 5] >>> lst.append([4,5,6]) >>> lst [1, 2, 3, 5, [4, 5, 6]]
2)clear()
該函數(shù)用于清空列表,類(lèi)似于del a[:]。例如:
>>>lst =[1,2,2,3,2,4] >>>lst.clear() #清空列表 >>>lst []
3)copy()
該函數(shù)用于復(fù)制列表。例如:
>>>list1 = [’張小平’, ’王磊’, ’胡華’] >>>list2 = list1.copy() >>>print (list2) [’張小平’, ’王磊’, ’胡華’]
4)count(value)
count()方法針對(duì)列表對(duì)象中的元素值為value者,計(jì)算其數(shù)目。例如:
>>> lst = [1, 2, 2, 3, 2, 4] >>> lst.count(2) 3
5)extend(list)
extend()方法將參數(shù)list列表對(duì)象中的元素加到此列表中,成為此列表的新元素。例如:
>>>lst = [1, 2, 3, 4] >>> lst.extend([5,6,7,8]) >>> lst [1, 2, 3, 4, 5, 6, 7, 8]
6)index(value)
index()方法將列表對(duì)象中元素值為value者,返回其索引值。例如:
>>> lst = [1, 2, 3, 4] >>> lst.index(2) 1
7)insert(index, object)
insert()方法將在列表對(duì)象中索引值為index的元素之前插入新元素object。例如:
>>> lst = [1, 2, 3, 4] >>> lst.insert(1, "Hello") >>> lst [1, 'Hello', 2, 3, 4]
8)pop([index])
pop()方法將列表對(duì)象中索引值為index的元素刪除。如果沒(méi)有指定index的值,就將最后一個(gè)元素刪除。例如:
>>> lst = [1, 2, 3, 5, [4, 5, 6]] >>> lst.pop() [4, 5, 6] >>> lst [1, 2, 3, 5] >>> lst.pop(1) 2 >>> lst [1, 3, 5]
9)remove(value)
remove()方法將列表對(duì)象中的元素值為value者刪除。例如:
>>> lst = [1, 2, 3, 4] >>> lst.remove(2) >>> lst [1, 3, 4]
10)reverse()
reverse()方法將列表對(duì)象中的元素顛倒排列。例如:
>>> lst = [1, 2, 3, 4] >>> lst.reverse() >>> lst [4, 3, 2, 1]
11)sort()
sort()方法將列表對(duì)象中的元素,依照大小順序排列。例如:
>>> lst = [1, 4, 3, 2] >>> lst.sort() >>> lst [1, 2, 3, 4]
- ASP.NET Web API:Build RESTful web applications and services on the .NET framework
- Learning C# by Developing Games with Unity 2020
- Spring Cloud Alibaba微服務(wù)架構(gòu)設(shè)計(jì)與開(kāi)發(fā)實(shí)戰(zhàn)
- Visual FoxPro程序設(shè)計(jì)教程
- Microsoft Dynamics 365 Extensions Cookbook
- 數(shù)據(jù)結(jié)構(gòu)習(xí)題精解(C語(yǔ)言實(shí)現(xiàn)+微課視頻)
- C#程序設(shè)計(jì)基礎(chǔ):教程、實(shí)驗(yàn)、習(xí)題
- 精通Python設(shè)計(jì)模式(第2版)
- Learning AngularJS for .NET Developers
- Tableau Desktop可視化高級(jí)應(yīng)用
- 程序員的成長(zhǎng)課
- Python應(yīng)用與實(shí)戰(zhàn)
- MongoDB Administrator’s Guide
- C語(yǔ)言程序設(shè)計(jì)
- Visual FoxPro程序設(shè)計(jì)實(shí)驗(yàn)教程