日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

河南师范大学python+学习笔记6 组合数据类型

發(fā)布時(shí)間:2023/12/18 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 河南师范大学python+学习笔记6 组合数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

吃水不忘挖井人
首先對(duì)河南師范大學(xué)的各位老師們說聲謝謝。他們是:
張磊老師、張倩倩老師、劉金金老師、郭凌云老師、李曉艷老師、李志先老師、陶華亭老師、周雪燕老師、王愛菊老師、陳勁松老師、黃曉巧老師、夏輝麗老師

第六章 組合數(shù)據(jù)類型

基本數(shù)據(jù)類型,包括數(shù)值類型、字符串類型、布爾類型等,這些類型能表示一個(gè)數(shù)據(jù), 這種表示單一數(shù)據(jù)的類型稱為基本數(shù)據(jù)類型。
實(shí)際在計(jì)算中,計(jì)算機(jī)不僅能處理單個(gè)變量表示的數(shù)據(jù), 更多情況下,計(jì)算機(jī)需要對(duì)一組數(shù)據(jù)進(jìn)行批量處理,這就需要能表示多個(gè)數(shù)據(jù)的組合數(shù)據(jù)類型。

Python語言中常用的組合數(shù)據(jù)類型有4種:

? 列表類型 ? 元組類型 ? 字典類型 ? 集合類型

6.1 列表類型

6.1.1列表的定義

? 列表是最常用的python數(shù)據(jù)類型,列表中的元素之間存在先后關(guān)系,
通過序號(hào)訪問,列表元素類型可以不同,列 表可以包含列表,列表沒有長度限制。
? 創(chuàng)建列表可以使用中括號(hào)[ ]和list( )函數(shù)。

? 列表的數(shù)據(jù)項(xiàng)不需要具有相同的類型

>>> s = [3.5,”ABC”,(4,5),[“紅”,”綠”,”藍(lán)”],3.5] >>> t =[[1,2,3,4,5],[5,6,7,8,9]]#列表可以嵌套列表 >>> s =list() #用list()創(chuàng)建空列表 >>> t =[] #用[]創(chuàng)建空列表

list( )將其他類型轉(zhuǎn)變成列表類型。

>>> list(“python”) #把字符轉(zhuǎn)轉(zhuǎn)換為列表 ['p', 'y', 't', 'h', 'o', 'n']

6.1.2列表的索引和切片

索引是列表的基本操作,用于獲得列表的元素。
列表索引可以用正向遞增序號(hào)和反向遞減序號(hào)。

可以使用for循環(huán)對(duì)列表進(jìn)行遍歷操作,基本使用方式如下:

for <循環(huán)變量> in <列表變量>:<語句塊>

for循環(huán)遍歷列表,循環(huán)變量依次獲得列表中的元素,
對(duì)每個(gè)列表元素執(zhí)行一次語句塊操作。

>>> s =[1,2,3,"A","B","C"] >>> for i in s: print(i*2,end=" ") 2 4 6 AA BB CC

切片是列表的基本操作,用于獲得列表的一個(gè)片段,
切片有兩種方式:
? 列表或列表變量[N: M] 獲取列表類型從N到M(不包 含M)的元素
? 列表或列表變量[N: M: K] 獲取列表類型從N到M(不 包含M)以K為步長所對(duì)應(yīng)元素

>>> s=[0,1,2,3,4,5,6,7,8,9,10] >>> s[1:4] [1, 2, 3] >>> s[-3:-1] [8, 9]>>> s=[0,1,2,3,4,5,6,7,8,9,10] >>> s[1:8:2] [1, 3, 5, 7] >>> s[::2] [0, 2, 4, 6, 8, 10] >>> s[::-2] [10, 8, 6, 4, 2, 0]

6.1.3列表的操作

列表操作符和函數(shù)
in、not in 判斷元素是否在列表中
min( )、 max( )、 列表的最小元素、最大元素
len( ) 、sum( ) 列表元素個(gè)數(shù)、列表求和
s + t 連接列表s和t
s * n 或 n * s 將列表s復(fù)制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

列表連接符 + 、列表復(fù)制符 *

>>> 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]

除了前面介紹的列表操作符和函數(shù)外,列表還提供 了一些操作方法,
列表類型操作方法的語法形式是:

<列表變量>.<方法名稱>(<方法參數(shù)>)

向列表添加元素,有s.append( )、s.insert( )、s.extend( )
? s.append( ) 是在列表最后增加一個(gè)元素。

>>> s=["A","B","C"] >>> s.append(1) >>> print(s) ['A', 'B', 'C', 1] >>> s.append([1,2,3]) >>> s ['A', 'B', 'C', 1, [1, 2, 3]]

? s.insert(i, x)在列表中序號(hào)i位置上插入元素x。

>>> s=["A","B","C"] >>> s.insert(1,10) >>> s ['A', 10, 'B', 'C']

? s.extend( )方法是向列表末尾添加一個(gè)列表。

>>> s=["A","B","C"] >>> t=[1,2,3] >>> s.extend(t) # 等價(jià)于 s+t >>> s ['A', 'B', 'C', 1, 2, 3]

? 從列表中刪除元素有s.remove( )、s.pop( )、del、s.clear( )
? s.pop( )方法將按照指定的位置序號(hào)返回元素,并刪除元素。
? s.remove( )方法按照指定的元素值刪除第一次出現(xiàn)的該元素。

>>> s=[0,1, 2, 2,3] >>> s.pop(1) #返回序號(hào)為1的元素,并從列表中刪除該元素 1 >>> s [0, 2, 2,3] >>> s.remove(2) #刪除列表中第一個(gè)出現(xiàn)的值為2的元素 >>> s [0,2,3]

? 使用Python保留字del根據(jù)索引位置刪除列表元素或切片片段。

>>> 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 #使用索引序號(hào)修改元素值 >>> s[1:3]=[4,5] #使用切片修改列表片段 >>> s[1:3]=[4,5,6,7] #切片和修改內(nèi)容長度可以不一致, ”多增少減”即可。

? s.copy( )方法是復(fù)制列表中所有元素生成一個(gè)新列表。修改原 列表元素不影響新生成的列表。
? 列表的賦值s= t語句,并不是把t的元素拷貝給s,而是把s和t 所指向同一套內(nèi)容。t清除元素時(shí),s也會(huì)清空。

? s.reverse( )方法將列表s中元素逆序。

>>> s=["A","B","C"] >>> s.reverse() >>> s ['C', 'B', 'A']

?s.sort( ) 將列表s中的元素排序,默認(rèn)升序。

>>> 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中第一次出現(xiàn)某個(gè)元素的位置
? s.count( )返回某元素在列表s中出現(xiàn)的次數(shù)

>>>s=[1,2,2,4,5] >>> s.index(5) #返回第一次出現(xiàn)元素5的位置序號(hào) 4 >>> s.count(2) #返回列表s中出現(xiàn)2的次數(shù) 2

?小結(jié):
本節(jié)主要講解了列表類型的定義、索引和切片以及 列表的操作。
列表是一個(gè)十分靈活的數(shù)據(jù)結(jié)構(gòu),它具有 處理任意長度、混合類型的能力,并提供了豐富的操作符和方法。
程序需要使用組合數(shù)據(jù)類型管理批量數(shù)據(jù)時(shí) ,應(yīng)盡量使用列表類型。

6.2 元組類型

6.2.1元組的定義

? 元組與列表類似,不同之處在于元組一旦創(chuàng)建不能修改,可以看做是只讀的列表。
?元組的元素之間有序,元組的元素類型可以不同,元組可以 包含元組,元組不可改變。

? 創(chuàng)建元組使用()或 tuple( )函數(shù)

>>> t = (?A?, ?B?, ?C?, ?D?) #用()創(chuàng)建元組 >>> d=((1,2,3,4,5),(6,7,8,9,10))#元組中嵌套元組 >>> e=tuple(range(5,11)) #把序列轉(zhuǎn)換為元組 >>> m=tuple(“python”) #把字符串轉(zhuǎn)換為元組

6.2.2元組的操作

? 可以使用索引和切片訪問元組元素

>>> t=tuple(range(10)) >>> t[3] >>> t[1:3] >>> t[1:9:2] ? 用del語句刪除整個(gè)元組 ? >>> del t

6.2.2元組的操作

? 元組元素不能增加、刪除、修改或排序,
但是可使用與列 表類似的方法獲得元組的信息。
? sum( )、max()、min()、len( )
? in 、not in ? t.index( )獲得元素的序號(hào)
? t.count()計(jì)算元素出現(xiàn)的次數(shù)
這里不再重述,同學(xué)們可參照列表的方法學(xué)習(xí)

?小結(jié):
本節(jié)主要介紹了元組的定義和元組的操作,元組與列表類 似,元組的一些操作可參照列表學(xué)習(xí),
元組與列表的區(qū)別是元 組創(chuàng)建后不能改變,可當(dāng)做只讀的列表使用。

6.3 字典類型

6.3.1字典的定義

? 字典的元素是一組“鍵值對(duì)”,字典的鍵值對(duì)之間無序且 不能重復(fù)。
? 字典的鍵必須唯一,必須是不可變類型,如字符串,整數(shù)、 實(shí)數(shù)、或元組。值可以取任何數(shù)據(jù)類型,值可以重復(fù). 6.3.1字典的定義
? 創(chuàng)建字典使用大括號(hào){ }或dict(…) ,每個(gè)元素是一個(gè)鍵值對(duì), 鍵和值通過冒號(hào)連接,不同鍵值對(duì)用逗號(hào)間隔。
創(chuàng)建包含姓名和電話的字典。

>>> t={"張雨":"187","李明":"189","王風(fēng)":"135", "趙雪":"152"}

可以先創(chuàng)建空字典,逐漸在字典中增加元素 ? 創(chuàng)建空字典

>>> d = { } >>> s= dict() >>>print(d) { }

6.3.2 字典的索引

? 列表類型采用元素的位置序號(hào)索引,字典直接利用鍵索引。 字典索引方式: <值> = <字典變量>[<鍵>] 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 字典的操作函數(shù)

字典類型常用的操作方法,使用語法形式是:
<字典變量>.<方法名稱>(<方法參數(shù)>)

? d.keys( )方法返回字典d中的所有鍵信息,返回結(jié)果是 Python的一種內(nèi)部數(shù)據(jù)類型dict_keys;
? d.values( )方法返回字典d中的所有值信息,返回結(jié)果是 Python的一種內(nèi)部數(shù)據(jù)類型dict_values。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.keys() dict_keys(['A', 'B', 'C', 'D']) >>> d.values() dict_values([1, 3, 5, 9])

? 可以用list()函數(shù)把將字典的鍵或值轉(zhuǎn)換為列表,
? 或使用tuple()把字典的鍵或值轉(zhuǎn)換為元組。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> print(list(d)) #把字典的鍵轉(zhuǎn)換為列表 ['A', 'B', 'C', 'D'] >>> print(list(d.values())) #把字典的值轉(zhuǎn)換為列表 [1, 3, 5, 9]

? d.items( )方法返回字典d中的所有鍵值對(duì)信息,
返回結(jié)果是 Python的一種內(nèi)部數(shù)據(jù)類型dict_items。用 list( )函數(shù)將字典 轉(zhuǎn)換為列表類型。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.items() dict_items([('A', 1), ('B', 3), ('C', 5), ('D', 9)]) >>> list(d.items()) [('A', 1), ('B', 3), ('C', 5), ('D', 9)]

? d.get(key, default)方法根據(jù)鍵信息查找并返回值信息,
如果 key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default 可以省略,如果省略則默認(rèn)值為空。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.get('A') 1 >>> d.get('M','無此信息') '無此信息' >>> d.get('M')

? d.pop(key, default)方法根據(jù)鍵查找并取出值,與get()方法類似,
不同的是pop( )在取出相應(yīng)值后,將從字典中刪除對(duì)應(yīng)的鍵值對(duì)。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.pop('A') 1 >>> d {'B': 3, 'C': 5, 'D': 9} >>> d.pop('A','無此信息')'無此信息‘

? d.popitem( )隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key, value) 形式返回。取出后從字典中刪除這個(gè)鍵值對(duì)。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> d.popitem() ('D', 9) >>> d {'A': 1, 'B': 3, 'C': 5}

? 使用保留字del可以刪除字典中某一個(gè)元素
? d.clear( )方法可以刪除字典中所有鍵值對(duì)。
? len( )返回字典的元素個(gè)數(shù),也稱為長度。

>>> d={'A':1,'B':3,'C':5,'D':9} >>> del d['A'] >>> d.clear() >>> len(d)

? 字典可以用for循環(huán)對(duì)其元素進(jìn)行遍歷,基本語法結(jié)構(gòu)如下:
for <變量名> in <字典名>
<語句塊>
? for循環(huán)返回的變量名是字典的鍵。如果需要獲得鍵對(duì)應(yīng)的值,可以在語句塊中通過get()方法獲得。

>>> t={"張雨":"187","李明":"189","王風(fēng)":"135","趙雪":"152"} >>> for k in t:print("聯(lián)系人包括:{}和{}".format(k, t.get(k))) 聯(lián)系人包括:張雨和187 聯(lián)系人包括:李明和189 聯(lián)系人包括:王風(fēng)和135 聯(lián)系人包括:趙雪和152

?小結(jié):
? 本節(jié)主要講解字典的定義、索引和字典的操作。
字典是非常重要的數(shù)據(jù)類型,請同學(xué)們多加練習(xí)。

6.4 集合類型

6.4.1 集合的定義

? 集合是包含0個(gè)或多個(gè)不重復(fù)數(shù)據(jù)項(xiàng)的無序組合。
? 集合中元素不可重復(fù),當(dāng)需要對(duì)一維數(shù)據(jù)進(jìn)行去重或進(jìn)行數(shù) 據(jù)重復(fù)處理時(shí),一般通過集合來完成。
? 創(chuàng)建集合可以使用大括號(hào){ }或者 set( )函數(shù),set( )函數(shù)用來 創(chuàng)建空集合或?qū)⑵渌臄?shù)據(jù)類型變成集合類型。

>>>S = {3, “ABC”, 7.9, 3} >>>S {7.9, 3, 'ABC'} >>> A=set() >>> print(A) set()>>> T=(1,1,2,3,4,4,5,'A','A','B','C') >>> S=set(T) >>> S {1, 2, 3, 4, 5, 'B', 'C', 'A'}

6.4.2 集合的操作

?集合類型常用的操作符: 交、差、并、補(bǔ)

>>>S = {3, “ABC", 7.9} >>>T = {5, "ABC", 12.3}

? 集合類型常用的操作函數(shù)或方法

S = {3, “ABC”, 7.9} #創(chuàng)建集合 >>> S.add(5) # 在集合中增加元素5 >>> S.remove(5) #刪除元素5 >>> S.clear() #清除集合的所有元素

?小結(jié):
? 本節(jié)主要講解集合的定義和操作。
集合的特點(diǎn)是元素?zé)o序 不重復(fù),集合常用來輔助去除重復(fù)元素。

6.5 實(shí)例解析

? 教務(wù)管理系統(tǒng)中有很多學(xué)生的信息,其中包括學(xué)生的課程和不 同課程的成績,我們經(jīng)常需要一些學(xué)生課程戒成績統(tǒng)計(jì)信息。
? 學(xué)生的成績表如圖所示。

姓名/科目 python 高數(shù) 英語 李東 89 97 80 麗麗 68 90 67 張佳 67 84 80 張希 100 79 70 李明 89 90 80 李月 76 60 89

在本實(shí)例中我們將介紹輸入學(xué)生的課程和成績,并把學(xué)生的成 績表按照某一科目成績排序。
IPO流程是:
? 第一步:輸入學(xué)生的課程和成績
? 第二走:根據(jù)輸入的排序要求(排序依據(jù)和排序順序)排序
? 第三步:輸出排序后的成績單

?第一步:輸入學(xué)生的課程和成績
? 輸入學(xué)生的課程信息保存到列表
? 輸入學(xué)生的成績信息保存到列表

? 第二步:根據(jù)輸入的排序要求(排序依據(jù)和排序順序)排序
? 排序依據(jù)和排序順序通過鍵盤輸入獲得 ?
排序依據(jù)為課程名稱
? 排序順序?yàn)樯蚪浣敌?br /> ? 第三步:輸出排序后的成績單
? 輸出課程信息和排序后的成績單

stus=int(input("請輸入學(xué)生人數(shù):")) cours=int(input("請輸入課程數(shù)目:")) stu=[] course=["姓名/科目"] INput(stus,cours) SORT() OUTput(stus,cours) def INput(num1,num2): #輸入學(xué)生課程和成績 for i in range(num2): course.append(input("請輸入課程名稱:")) for m in range(num1): score=[] score.append(input("請輸入學(xué)生姓名:")) for n in range(num2): print(“請輸入{}科目成績:".format(course[n+1]),end="\t") score.append(eval(input(""))) stu.append(score) print() def SORT(): #按照要求排序k=course.index(input("請輸入排序依據(jù)(課程名稱):"))j=eval(input("請輸入排序順序(升序請輸入0,降序請輸入1):")) stu.sort(key=lambda x:x[k],reverse=j)

def OUTput(num1,num2): # 輸出顯示學(xué)生課程和成績
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()

輸入學(xué)生信息并按照python成績降序排序后的成績單。
從結(jié) 果中你還能發(fā)現(xiàn)什么?想要計(jì)算其他的統(tǒng)計(jì)信息該如何改迚程序 呢?
請感興趣的同學(xué)逐步完善程序。

姓名/科目 python 高數(shù) 英語 張希 100 79 70李東 89 97 80李明 89 90 80 李月 76 60 89 麗麗 68 90 67 張佳 67 84 80

總結(jié)

以上是生活随笔為你收集整理的河南师范大学python+学习笔记6 组合数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。