河南师范大学python+学习笔记6 组合数据类型
吃水不忘挖井人
首先對河南師范大學的各位老師們說聲謝謝。他們是:
張磊老師、張倩倩老師、劉金金老師、郭凌云老師、李曉艷老師、李志先老師、陶華亭老師、周雪燕老師、王愛菊老師、陳勁松老師、黃曉巧老師、夏輝麗老師
第六章 組合數據類型
基本數據類型,包括數值類型、字符串類型、布爾類型等,這些類型能表示一個數據, 這種表示單一數據的類型稱為基本數據類型。
實際在計算中,計算機不僅能處理單個變量表示的數據, 更多情況下,計算機需要對一組數據進行批量處理,這就需要能表示多個數據的組合數據類型。
Python語言中常用的組合數據類型有4種:
? 列表類型 ? 元組類型 ? 字典類型 ? 集合類型
6.1 列表類型
6.1.1列表的定義
? 列表是最常用的python數據類型,列表中的元素之間存在先后關系,
通過序號訪問,列表元素類型可以不同,列 表可以包含列表,列表沒有長度限制。
? 創建列表可以使用中括號[ ]和list( )函數。
? 列表的數據項不需要具有相同的類型
>>> s = [3.5,”ABC”,(4,5),[“紅”,”綠”,”藍”],3.5] >>> t =[[1,2,3,4,5],[5,6,7,8,9]]#列表可以嵌套列表 >>> s =list() #用list()創建空列表 >>> t =[] #用[]創建空列表list( )將其他類型轉變成列表類型。
>>> list(“python”) #把字符轉轉換為列表 ['p', 'y', 't', 'h', 'o', 'n']6.1.2列表的索引和切片
索引是列表的基本操作,用于獲得列表的元素。
列表索引可以用正向遞增序號和反向遞減序號。
可以使用for循環對列表進行遍歷操作,基本使用方式如下:
for <循環變量> in <列表變量>:<語句塊>for循環遍歷列表,循環變量依次獲得列表中的元素,
對每個列表元素執行一次語句塊操作。
切片是列表的基本操作,用于獲得列表的一個片段,
切片有兩種方式:
? 列表或列表變量[N: M] 獲取列表類型從N到M(不包 含M)的元素
? 列表或列表變量[N: M: K] 獲取列表類型從N到M(不 包含M)以K為步長所對應元素
6.1.3列表的操作
列表操作符和函數
in、not in 判斷元素是否在列表中
min( )、 max( )、 列表的最小元素、最大元素
len( ) 、sum( ) 列表元素個數、列表求和
s + t 連接列表s和t
s * n 或 n * s 將列表s復制n次
判斷元素是否在列表中:in、not in
>>> T=[1,2,2,4,5] >>> 1 in T True >>> 1 not in T False列表的最大值、最小值、長度、求和
? max( )、min( )、len( )、sum( ) 。
>>> T=[1,2,2,4,5]
>>> max(T)
5
>>> min(T)
1
>>> len(T)
5
>>> sum(T)
14
列表連接符 + 、列表復制符 *
>>> S =[3, "ABC", 7.9] >>> T=[1,2,2,4,5] >>> S+T [3, 'ABC', 7.9, 1, 2, 2, 4, 5] >>> S*2 [3, 'ABC', 7.9, 3, 'ABC', 7.9]除了前面介紹的列表操作符和函數外,列表還提供 了一些操作方法,
列表類型操作方法的語法形式是:
向列表添加元素,有s.append( )、s.insert( )、s.extend( )
? s.append( ) 是在列表最后增加一個元素。
? s.insert(i, x)在列表中序號i位置上插入元素x。
>>> s=["A","B","C"] >>> s.insert(1,10) >>> s ['A', 10, 'B', 'C']? s.extend( )方法是向列表末尾添加一個列表。
>>> s=["A","B","C"] >>> t=[1,2,3] >>> s.extend(t) # 等價于 s+t >>> s ['A', 'B', 'C', 1, 2, 3]? 從列表中刪除元素有s.remove( )、s.pop( )、del、s.clear( )
? s.pop( )方法將按照指定的位置序號返回元素,并刪除元素。
? s.remove( )方法按照指定的元素值刪除第一次出現的該元素。
? 使用Python保留字del根據索引位置刪除列表元素或切片片段。
>>> s=[0,1,2,3,4,5,6] >>> del s[2] >>> del s[1:3] >>> del s[0:7:2]? s.clear()方法將刪除列表的所有元素,清空列表。
>>> s=["A","B","C"] >>> s.clear() >>> s []? 除上述方法外,可以使用索引和切片配合“=”修改列表 元素或片段。
>>> s=["A","B","C"] >>> s[1]=2 #使用索引序號修改元素值 >>> s[1:3]=[4,5] #使用切片修改列表片段 >>> s[1:3]=[4,5,6,7] #切片和修改內容長度可以不一致, ”多增少減”即可。? s.copy( )方法是復制列表中所有元素生成一個新列表。修改原 列表元素不影響新生成的列表。
? 列表的賦值s= t語句,并不是把t的元素拷貝給s,而是把s和t 所指向同一套內容。t清除元素時,s也會清空。
? s.reverse( )方法將列表s中元素逆序。
>>> s=["A","B","C"] >>> s.reverse() >>> s ['C', 'B', 'A']?s.sort( ) 將列表s中的元素排序,默認升序。
>>> s=[1,3,6,4,2] >>> s.sort() >>> s [1, 2, 3, 4, 6] >>> s.sort(reverse=True) >>> s [6, 4, 3, 2, 1]? s.index( )返回列表s中第一次出現某個元素的位置
? s.count( )返回某元素在列表s中出現的次數
?小結:
本節主要講解了列表類型的定義、索引和切片以及 列表的操作。
列表是一個十分靈活的數據結構,它具有 處理任意長度、混合類型的能力,并提供了豐富的操作符和方法。
程序需要使用組合數據類型管理批量數據時 ,應盡量使用列表類型。
6.2 元組類型
6.2.1元組的定義
? 元組與列表類似,不同之處在于元組一旦創建不能修改,可以看做是只讀的列表。
?元組的元素之間有序,元組的元素類型可以不同,元組可以 包含元組,元組不可改變。
? 創建元組使用()或 tuple( )函數
>>> t = (?A?, ?B?, ?C?, ?D?) #用()創建元組 >>> d=((1,2,3,4,5),(6,7,8,9,10))#元組中嵌套元組 >>> e=tuple(range(5,11)) #把序列轉換為元組 >>> m=tuple(“python”) #把字符串轉換為元組6.2.2元組的操作
? 可以使用索引和切片訪問元組元素
>>> t=tuple(range(10)) >>> t[3] >>> t[1:3] >>> t[1:9:2] ? 用del語句刪除整個元組 ? >>> del t6.2.2元組的操作
? 元組元素不能增加、刪除、修改或排序,
但是可使用與列 表類似的方法獲得元組的信息。
? sum( )、max()、min()、len( )
? in 、not in ? t.index( )獲得元素的序號
? t.count()計算元素出現的次數
這里不再重述,同學們可參照列表的方法學習
?小結:
本節主要介紹了元組的定義和元組的操作,元組與列表類 似,元組的一些操作可參照列表學習,
元組與列表的區別是元 組創建后不能改變,可當做只讀的列表使用。
6.3 字典類型
6.3.1字典的定義
? 字典的元素是一組“鍵值對”,字典的鍵值對之間無序且 不能重復。
? 字典的鍵必須唯一,必須是不可變類型,如字符串,整數、 實數、或元組。值可以取任何數據類型,值可以重復. 6.3.1字典的定義
? 創建字典使用大括號{ }或dict(…) ,每個元素是一個鍵值對, 鍵和值通過冒號連接,不同鍵值對用逗號間隔。
創建包含姓名和電話的字典。
可以先創建空字典,逐漸在字典中增加元素 ? 創建空字典
>>> d = { } >>> s= dict() >>>print(d) { }6.3.2 字典的索引
? 列表類型采用元素的位置序號索引,字典直接利用鍵索引。 字典索引方式: <值> = <字典變量>[<鍵>] 6.3.2 字典的索引
>>> d={'A':1,'B':3,'C':5,'D':9} >>> d['A'] 1? 利用鍵索引和賦值(=),可以修改或增加字典元素
>>> d={'A':1,'B':3,'C':5,'D':9} >>> d[‘M’]=2 #把鍵為’M’的元素值改為2,若字典中不存 在則增加此元素 >>> d {'A': 1, 'B': 3, 'C': 5, 'D': 9, 'M': 2}6.3.3 字典的操作函數
字典類型常用的操作方法,使用語法形式是:
<字典變量>.<方法名稱>(<方法參數>)
? d.keys( )方法返回字典d中的所有鍵信息,返回結果是 Python的一種內部數據類型dict_keys;
? d.values( )方法返回字典d中的所有值信息,返回結果是 Python的一種內部數據類型dict_values。
? 可以用list()函數把將字典的鍵或值轉換為列表,
? 或使用tuple()把字典的鍵或值轉換為元組。
? d.items( )方法返回字典d中的所有鍵值對信息,
返回結果是 Python的一種內部數據類型dict_items。用 list( )函數將字典 轉換為列表類型。
? d.get(key, default)方法根據鍵信息查找并返回值信息,
如果 key存在則返回相應值,否則返回默認值,第二個元素default 可以省略,如果省略則默認值為空。
? d.pop(key, default)方法根據鍵查找并取出值,與get()方法類似,
不同的是pop( )在取出相應值后,將從字典中刪除對應的鍵值對。
? d.popitem( )隨機從字典中取出一個鍵值對,以元組(key, value) 形式返回。取出后從字典中刪除這個鍵值對。
>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.popitem() ('D', 9) >>> d {'A': 1, 'B': 3, 'C': 5}? 使用保留字del可以刪除字典中某一個元素
? d.clear( )方法可以刪除字典中所有鍵值對。
? len( )返回字典的元素個數,也稱為長度。
? 字典可以用for循環對其元素進行遍歷,基本語法結構如下:
for <變量名> in <字典名>
<語句塊>
? for循環返回的變量名是字典的鍵。如果需要獲得鍵對應的值,可以在語句塊中通過get()方法獲得。
?小結:
? 本節主要講解字典的定義、索引和字典的操作。
字典是非常重要的數據類型,請同學們多加練習。
6.4 集合類型
6.4.1 集合的定義
? 集合是包含0個或多個不重復數據項的無序組合。
? 集合中元素不可重復,當需要對一維數據進行去重或進行數 據重復處理時,一般通過集合來完成。
? 創建集合可以使用大括號{ }或者 set( )函數,set( )函數用來 創建空集合或將其他的數據類型變成集合類型。
6.4.2 集合的操作
?集合類型常用的操作符: 交、差、并、補
>>>S = {3, “ABC", 7.9} >>>T = {5, "ABC", 12.3}? 集合類型常用的操作函數或方法
S = {3, “ABC”, 7.9} #創建集合 >>> S.add(5) # 在集合中增加元素5 >>> S.remove(5) #刪除元素5 >>> S.clear() #清除集合的所有元素?小結:
? 本節主要講解集合的定義和操作。
集合的特點是元素無序 不重復,集合常用來輔助去除重復元素。
6.5 實例解析
? 教務管理系統中有很多學生的信息,其中包括學生的課程和不 同課程的成績,我們經常需要一些學生課程戒成績統計信息。
? 學生的成績表如圖所示。
在本實例中我們將介紹輸入學生的課程和成績,并把學生的成 績表按照某一科目成績排序。
IPO流程是:
? 第一步:輸入學生的課程和成績
? 第二走:根據輸入的排序要求(排序依據和排序順序)排序
? 第三步:輸出排序后的成績單
?第一步:輸入學生的課程和成績
? 輸入學生的課程信息保存到列表
? 輸入學生的成績信息保存到列表
? 第二步:根據輸入的排序要求(排序依據和排序順序)排序
? 排序依據和排序順序通過鍵盤輸入獲得 ?
排序依據為課程名稱
? 排序順序為升序戒降序
? 第三步:輸出排序后的成績單
? 輸出課程信息和排序后的成績單
def OUTput(num1,num2): # 輸出顯示學生課程和成績
print()
print(“按照要求排序后的成績:”)
for cour in range(len(course)):
print("{:<10}\t".format(course[cour]),end="")
print()
for student in range(num1):
for cour in range(num2+1):
print("{:<10}\t".format(stu[student][cour]),end="")
print()
輸入學生信息并按照python成績降序排序后的成績單。
從結 果中你還能發現什么?想要計算其他的統計信息該如何改迚程序 呢?
請感興趣的同學逐步完善程序。
總結
以上是生活随笔為你收集整理的河南师范大学python+学习笔记6 组合数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WIN7 64 安装串口驱动和mini2
- 下一篇: win10和ubuntu16.04双系统