




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本章導(dǎo)讀在計算機應(yīng)用領(lǐng)域中,常常會遇到需要處理大量數(shù)據(jù)的問題,其特點是:數(shù)據(jù)量很大,數(shù)據(jù)之間存在一定的內(nèi)在關(guān)系。例如,一個班有100個學(xué)生,如果用字符串變量存儲學(xué)生的名字,那么需要100個變量,可見用字符串變量來處理這樣的數(shù)據(jù)將十分不方便,甚至不能處理。本章將介紹如何使用列表和元組數(shù)據(jù)結(jié)構(gòu)解決這一類問題。第5章列表和元組學(xué)習(xí)目標理解列表的概念掌握列表的常見操作掌握元組的使用方法理解列表和元組的區(qū)別
列表5.1元組5.2典型案例5.35.1列表5.1.2列表的遍歷5.1.1列表的概述5.1.3列表的基本操作列表(list)是包含0個或多個元素的有序序列,屬于序列類型。列表的長度和內(nèi)容都是可變的,可自由對列表中的元素進行增加、刪除或替換。列表沒有長度限制,元素類型可以不同,可以同時包含整數(shù)、實數(shù)、字符串等基本類型,也可以是列表、元組、字典、集合以及其他自定義類型的對象,使用非常靈活。>>>animal=['elephant','monkey','snake','tiger'] >>>animal ['elephant','monkey','snake','tiger']創(chuàng)建列表的方式很簡單,只需將逗號分隔的不同元素使用方括號括起來即可。例如:與字符串的索引一樣,列表索引也是從0開始的。我們可以通過下標索引的方式來訪問列表中的值。>>>animal[0] 'elephant'例如:
提示與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù),因此,列表必須通過顯式的數(shù)據(jù)賦值才能生成,簡單將一個列表賦值給另一個列表不會生成新的列表對象,只是產(chǎn)生對原有列表的一個新的引用。例:列表的賦值與引用。stu_1=['001','Wangwu',98] #使用數(shù)據(jù)賦值創(chuàng)建列表stu_1stu_2=stu_1 #stu_2是stu_1所對應(yīng)數(shù)據(jù)的應(yīng)用,stu_2并不包含真實數(shù)據(jù)print(stu_1,stu_2) #輸出stu_1和stu_2stu_1[0]='002' #修改元素stu_1[0]的值為'002'print(stu_1,stu_2) #輸出stu_1和stu_2程序運行效果
知識庫也可以使用list()函數(shù)將字符串、range對象、元組等對象轉(zhuǎn)換為列表。其語法格式為list(obj),其中obj為需要轉(zhuǎn)換的對象。>>>list('helloworld') #將字符串轉(zhuǎn)換為列表['h','e','l','l','o','','w','o','r','l','d']>>>list(range(1,10,2)) #將range對象轉(zhuǎn)換為列表[1,3,5,7,9]1.使用while循環(huán)遍歷列表使用while循環(huán)遍歷列表,首先需要獲取列表的長度,將獲取的列表長度作為while循環(huán)的判斷條件。例:使用while循環(huán)遍歷列表。animal=['elephant','monkey','snake','tiger'] #創(chuàng)建列表animallength=len(animal) #獲取列表的長度賦給lengthi=0 #循環(huán)遍歷i初值為0whilei<length: #當(dāng)i小于length時循環(huán)
print(animal[i]) #輸出列表元素
i+=1 #循環(huán)變量加1程序運行效果2.使用for循環(huán)遍歷列表使用for循環(huán)遍歷列表的方式非常簡單,只需要將要遍歷的列表作為for循環(huán)表達式中的序列即可。例:使用for循環(huán)遍歷列表。animal=['elephant','monkey','snake','tiger'] #創(chuàng)建列表animalfornameinanimal: #將要遍歷的列表作為for循環(huán)表達式中的序列
print(name) #輸出name程序運行效果1.增加元素list.append(obj)list表示列表obj表示添加到列表末尾的對象1)append()方法:使用append()方法可在列表末尾添加新的元素。例如:>>>add_list=[0,1,2,3] #創(chuàng)建列表add_list并賦值>>>add_list.append(4) #使用append()方法給add_list末尾添加元素4>>>add_list #打印add_list[0,1,2,3,4]2)extend()方法:使用extend()方法可在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)。list.extend(seq)list表示列表seq表示添加到列表中的元素列表例:比較extend()方法與append()方法添加列表元素的不同。list_1=[1,2,3] #創(chuàng)建列表list_1并賦值list_2=[4,5,6] #創(chuàng)建列表list_2并賦值list_3=[7,8,9] #創(chuàng)建列表list_3并賦值list_1.append(list_2) #將list_2看作一個對象,整體打包添加到list_1對象中print(list_1) #輸出list_1list_2.extend(list_3) #將list_3看作一個序列,將這個序列和list_2序列合并print(list_2) #輸出list_2程序運行效果3)insert()方法:使用insert()方法可將指定對象插入到列表的指定位置。list.insert(index,obj)list表示列表index表示對象需要插入的索引位置obj表示要插入列表中的對象例如:>>>number=[1,2,4,5] #創(chuàng)建列表number并賦值>>>number.insert(2,3) #使用insert()方法將元素3添加到列表索引為2的位置中>>>number #打印number[1,2,3,4,5]2.查找元素與計數(shù)1)index()方法:用于返回指定元素在列表中首次出現(xiàn)的位置,如果該元素不在列表中則拋出異常。list.index(obj)list表示列表obj表示要查找的對象例:在列表中查找元素,如果找到,輸出該元素在列表中的索引位置,否則輸出未找到。animal=['elephant','monkey','snake','tiger'] #創(chuàng)建列表animalx=input('請輸入要查找的動物名稱:') #輸入要查找的元素ifxinanimal: #查找是否存在
a=animal.index("tiger") #返回索引
print('元素{0}在列表中的索引為:{1}'.format(x,a)) #輸出索引號else:print('列表中不存在該元素') #輸出未找到信息程序運行效果2)count()方法:統(tǒng)計指定元素在列表中出現(xiàn)的次數(shù)。list.count(obj)list表示列表obj表示列表中要統(tǒng)計的對象例如:>>>x=[1,2,1,2,1,2] #創(chuàng)建列表>>>x.count(1) #使用count()方法統(tǒng)計1在變量x中的出現(xiàn)次數(shù)33.刪除元素1)del命令:可根據(jù)索引刪除列表中的元素,還可以使用分片的方式刪除列表中的元素。例如:>>>number=[1,2,3,4,5] #創(chuàng)建列表number并賦值>>>delnumber[2] #使用del命令刪除number中索引為2的元素>>>number #打印number[1,2,4,5]>>>number=[1,2,3,4,5] #創(chuàng)建列表number并賦值>>>delnumber[1:3] #使用del命令刪除索引從1到3(不包括3)的元素>>>number #打印number[1,4,5]2)pop()方法:用于移除列表中的一個元素(默認為最后一個元素),并且返回該元素的值。list.pop([obj])list表示列表obj為可選參數(shù),表示移除列表元素的索引值,默認為-1,刪除最后一個列表值例如:>>>number=[1,2,3,4,5] #創(chuàng)建列表number并賦值>>>number.pop() #使用pop()方法刪除number中的元素5>>>number #打印number[1,2,3,4]>>>number.pop(0) #使用pop()方法刪除number中索引為0的元素1>>>number #打印number[2,3,4]3)remove()方法:用于移除列表中某個值的第一個匹配項。list.remove(obj)list表示列表obj表示列表中要移除的對象例:刪除列表中所有的指定元素。x=['123','abc','xyz','abc','python'] #創(chuàng)建列表x并賦值while'abc'inx: #循環(huán)
x.remove('abc') #使用remove()方法刪除x中值為'abc'的元素print(x) #輸出x程序運行效果4.分片賦值分片賦值就是以分片的形式給序列賦值,可以一次為多個元素賦值。分片賦值還可以在不替換任何原有元素的情況下插入新的元素。分片賦值也可以用來刪除元素。>>>x=[1,2,3,4] #創(chuàng)建列表并賦值>>>x #打印列表x[1,2,3,4]>>>x[2:]=[5,6,7]#替換變量x索引從2開始到最后的元素>>>x #打印變量x[1,2,5,6,7]>>>x=[1,7] #創(chuàng)建列表并賦值>>>x[1:1]=[2,3,4,5,6] #在變量x中索引為1的位置插入列表[2,3,4,5,6]>>>x #打印變量x[1,2,3,4,5,6,7]>>>x=[1,2,3,4,5,6,7] #創(chuàng)建列表并賦值>>>x[1:6]=[] #用空列表將x中索引1到索引6之間的元素替換>>>x #打印變量x[1,7]例如:5.列表排序1)reverse()方法:用于將列表中的元素反向存放。list.reverse()list表示列表,該方法沒有參數(shù),沒有返回值例如:>>>x=[1,2,3,4] #創(chuàng)建列表并賦值>>>x.reverse() #使用reverse()方法將變量x中的元素反向存放>>>x #打印變量x[4,3,2,1]2)sort()方法:用于對原列表進行排序(默認為升序排序),排序后的新列表會覆蓋原列表。list.sort([key=None][,reverse=False])list表示列表key為可選參數(shù),如果指定了該參數(shù),會使用該參數(shù)的方法進行排序reverse為可選參數(shù),表示是否反向排序,默認為False例:給定任意n個整數(shù),按由小到大次序?qū)ζ溥M行排序,并輸出結(jié)果。x=[3,2,1,5,4] #創(chuàng)建列表并賦值x.sort() #使用sort()方法對變量x中的元素進行升序排序print(x) #輸出列表x程序運行效果例:將多個字符串按照長度逆序排序后輸出。x=['a','abc','ab','abcd'] #創(chuàng)建列表并賦值x.sort(key=len,reverse=True) #使用sort()方法對變量x中元素進行長度逆序排序print(x) #輸出列表x程序運行效果3)sorted()函數(shù):與sort()方法不同,內(nèi)置函數(shù)sorted()返回新列表,并不對原列表進行任何修改。sorted(iterable[,key=None][,reverse=False])iterable表示可迭代對象,在這里就是列表名參數(shù)key和reverse的用法與sort()方法中的相同例如:>>>x=[1,5,2,3,4] #創(chuàng)建列表并賦值>>>y=sorted(x) #將x中的元素升序排序后賦給變量y>>>x #輸出x[1,5,2,3,4]>>>y #輸出y[1,2,3,4,5]5.2元組5.2.2元組的內(nèi)置函數(shù)5.2.1元組的基本操作元組(tuple):與列表類似,不同之處在于不能修改元組的元素,元組使用圓括號包含元素,而列表使用方括號包含元素。創(chuàng)建元組:只需要在圓括號中添加元素,并使用逗號分隔元素即可,也可省略圓括號,直接使用逗號分隔元素。例如:>>>x=('a','b',1,2,3) #創(chuàng)建元組x>>>x #輸出x('a','b',1,2,3)>>>y='a','b','c','d' #創(chuàng)建元組y時省略了圓括號>>>y #輸出y('a','b','c','d')
提示(1)如果要定義一個空元組,可以用沒有包含內(nèi)容的圓括號來表示。(2)Python在定義只有1個元素的元組時,在元素后面必須加一個逗號“,”。>>>x=() #創(chuàng)建空元組x>>>x=(1,) #創(chuàng)建只有一個元素的元組x1.訪問元組與列表類似,可以使用下標索引來訪問元組中的值。例如:>>>x=('a',1,3.14) #創(chuàng)建元組x>>>x[0] #輸出元組索引為0的元素'a'>>>x[1] #輸出元組索引為1的元素1>>>x[2] #輸出元組索引為2的元素3.142.合并元組元組中的元素值是不允許修改的,但我們可以對元組進行連接組合。例如:>>>x=(1,2,3) #創(chuàng)建元組x>>>y=('a','b') #創(chuàng)建元組y>>>z=x+y #將元組x和y進行連接組合后賦給z>>>z #輸出z(1,2,3,'a','b')3.元組的遍歷與列表一樣,也可以使用for循環(huán)來遍歷元組中的所有元素。例:元組的遍歷。x=(1,2,3,4,5) #創(chuàng)建元組xforninx: #循環(huán)
print(n,'',end="") #輸出元素程序運行效果Python提供的元組內(nèi)置函數(shù)有l(wèi)en()、max()、min()和tuple()。tuple()函數(shù)的功能是以一個序列為參數(shù),并把它轉(zhuǎn)換為元組,如果參數(shù)本身是元組,則原樣返回該參數(shù)。例如:>>>tuple([1,2,3]) #將列表轉(zhuǎn)換為元組(1,2,3)>>>tuple('abc') #將字符串轉(zhuǎn)換為元組('a','b','c')>>>tuple((1,2,3)) #參數(shù)為元組(1,2,3)5.3典型案例例:編寫一個簡易計算器,要求根據(jù)輸入的數(shù)字和四則運算符號,計算運算結(jié)果并輸出。operator_list=['+','-','*','/'] #創(chuàng)建列表并賦值四則運算符number_1=float(input("請輸入第一個操作數(shù):")) #獲取第一個操作數(shù)operator=input("請輸入運算符:") #獲取運算符number_2=float(input("請輸入第二個操作數(shù):")) #獲取第二個操作數(shù)#判斷用戶輸入的運算符并進行計算,將結(jié)果賦值給變量resultifoperatornotinoperator_list: #輸入的運算符不是四則運算符
print("輸入的運算符有誤,請輸入四則運算符!") #輸出提示語else: #輸入的運算符屬于四則運算符
ifoperator
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長江師范學(xué)院《管理技能與創(chuàng)新實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 桂林旅游學(xué)院《微機原理與接口技術(shù)(3)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州城市學(xué)院《書法(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東華理工大學(xué)《汽車發(fā)展史》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆四川省新高考教研聯(lián)盟高三上學(xué)期八省適應(yīng)性聯(lián)考模擬演練考試(二)歷史試卷
- 合肥城市學(xué)院《建筑施工安全》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年上海市松江區(qū)高三上學(xué)期期末質(zhì)量監(jiān)控考試歷史試卷
- 長春大學(xué)旅游學(xué)院《高分子材料改性原理及技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 林州建筑職業(yè)技術(shù)學(xué)院《化工制圖與AutoCAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 華東交通大學(xué)《中國現(xiàn)當(dāng)代文學(xué)二》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑構(gòu)造》模擬練習(xí)試題庫(含答案)
- 2025年度養(yǎng)老服務(wù)機構(gòu)場地租賃合同及養(yǎng)老服務(wù)協(xié)議
- 貴州省情知識考試題庫500題(含答案)
- 大學(xué)生家長陪讀承諾書
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第5章 事故案例評析
- 2023版交安A、B、C證考試題庫含答案
- 樓梯 欄桿 欄板(一)22J403-1
- 勞動法培訓(xùn)課件
- 2024-2025學(xué)年成都市成華區(qū)七年級上英語期末考試題(含答案)
- 2024年05月青海青海省農(nóng)商銀行(農(nóng)信社)系統(tǒng)招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年山西杏花村汾酒集團限責(zé)任公司人才招聘71名高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論