所以這篇文章,我們先來回顧和總結(jié)Python數(shù)據(jù)結(jié)構(gòu)里常用操作。Python中常見的數(shù)據(jù)結(jié)構(gòu)可以統(tǒng)稱為容器(container)。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在這篇文章的討論范圍內(nèi)。
創(chuàng)新互聯(lián)建站2013年至今,先為新密等服務(wù)建站,新密等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新密企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
在此,我們先從元組開始說起。
元組區(qū)別于列表的顯著特征之一就是它不能被修改,但其另外一個(gè)作用就是 用于沒有字段名的記錄 [1] 。因?yàn)楹笳呓?jīng)常被忽略,我們先來看看元組作為記錄的作用。
使用括號就可以定義一個(gè)元組。元組中的每個(gè)元素都存放了記錄中一個(gè)字段的數(shù)據(jù),外加這個(gè)字段的位置。正是這個(gè)位置信息給數(shù)據(jù)賦予了意義。下面的例子中,元組就被當(dāng)作記錄加以利用:
輸出為:
上述for循環(huán)中的操作提取了元組中的元素,也叫作拆包(unpacking)。平行賦值是對元組拆包很好的應(yīng)用,示例如下:
還有一個(gè)經(jīng)典而優(yōu)雅的應(yīng)用是交換變量的值:
用 * 運(yùn)算符把一個(gè)可迭代對象拆開作為函數(shù)的參數(shù),例如Python的內(nèi)置函數(shù)pmod接收兩個(gè)數(shù)字類型的參數(shù),返回商和余數(shù)。以下范例將使用 * 將元組傳入函數(shù)。
輸出為:
有些函數(shù)有多個(gè)返回值,將其賦給一個(gè)變量時(shí),變量類型即是元組:
輸出為:
zip是Python的內(nèi)置函數(shù),能夠接收兩個(gè)或多個(gè)序列,并組成一個(gè)元組列表,在Python3中會返回一個(gè)迭代器,如下所示:
輸出為:
元組當(dāng)然也支持一些常規(guī)操作,如對于元組 a = (1, 'y', 5, 5, 'x') :
上述內(nèi)容不僅涵蓋了元組的基本操作,同時(shí)也結(jié)合了實(shí)際工作中常搭配使用的其他函數(shù)、運(yùn)算符等。在回顧這些知識時(shí)主要參考了兩本經(jīng)典的Python編程書籍:《流暢的Python》和《像計(jì)算機(jī)科學(xué)家一樣思考Python》,有興趣的朋友可以深入閱讀!
希望這篇文章對你有幫助,下回將總結(jié)Python列表的使用技巧。
[1]《流暢的Python》:
【常見的內(nèi)置函數(shù)】
1、enumerate(iterable,start=0)
是python的內(nèi)置函數(shù),是枚舉、列舉的意思,對于一個(gè)可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個(gè)索引序列,利用它可以同時(shí)獲得索引和值。
2、zip(*iterables,strict=False)
用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長度與最短的對象相同,利用*號操作符,可以將元組解壓為列表。
3、filter(function,iterable)
filter是將一個(gè)序列進(jìn)行過濾,返回迭代器的對象,去除不滿足條件的序列。
4、isinstance(object,classinfo)
是用來判斷某一個(gè)變量或者是對象是不是屬于某種類型的一個(gè)函數(shù),如果參數(shù)object是classinfo的實(shí)例,或者object是classinfo類的子類的一個(gè)實(shí)例,
返回True。如果object不是一個(gè)給定類型的的對象, 則返回結(jié)果總是False
5、eval(expression[,globals[,locals]])
用來將字符串str當(dāng)成有效的表達(dá)式來求值并返回計(jì)算結(jié)果,表達(dá)式解析參數(shù)expression并作為Python表達(dá)式進(jìn)行求值(從技術(shù)上說是一個(gè)條件列表),采用globals和locals字典作為全局和局部命名空間。
【常用的句式】
1、format字符串格式化
format把字符串當(dāng)成一個(gè)模板,通過傳入的參數(shù)進(jìn)行格式化,非常實(shí)用且強(qiáng)大。
2、連接字符串
常使用+連接兩個(gè)字符串。
3、if...else條件語句
Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊。其中if...else語句用來執(zhí)行需要判斷的情形。
4、for...in、while循環(huán)語句
循環(huán)語句就是遍歷一個(gè)序列,循環(huán)去執(zhí)行某個(gè)操作,Python中的循環(huán)語句有for和while。
5、import導(dǎo)入其他腳本的功能
有時(shí)需要使用另一個(gè)python文件中的腳本,這其實(shí)很簡單,就像使用import關(guān)鍵字導(dǎo)入任何模塊一樣。
內(nèi)置函數(shù)就是Python給你提供的,拿來直接用的函數(shù),比如print.,input等。
截止到python版本3.6.2 ,python一共提供了68個(gè)內(nèi)置函數(shù),具體如下
本文將這68個(gè)內(nèi)置函數(shù)綜合整理為12大類,正在學(xué)習(xí)Python基礎(chǔ)的讀者一定不要錯(cuò)過,建議收藏學(xué)習(xí)!
(1)列表和元組
(2)相關(guān)內(nèi)置函數(shù)
(3)字符串
frozenset 創(chuàng)建一個(gè)凍結(jié)的集合,凍結(jié)的集合不能進(jìn)行添加和刪除操作。
語法:sorted(Iterable, key=函數(shù)(排序規(guī)則), reverse=False)
語法:fiter(function. Iterable)
function: 用來篩選的函數(shù). 在?lter中會自動的把iterable中的元素傳遞給function. 然后根據(jù)function返回的True或者False來判斷是否保留留此項(xiàng)數(shù)據(jù) , Iterable: 可迭代對象
搜索公眾號頂級架構(gòu)師后臺回復(fù)“面試”,送你一份驚喜禮包。
語法 : map(function, iterable)
可以對可迭代對象中的每一個(gè)元素進(jìn)行映射. 分別去執(zhí)行 function
hash : 獲取到對象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空間換的時(shí)間 比較耗費(fèi)內(nèi)存
python元組內(nèi)置的函數(shù)有:
1、cmp(tuple1, tuple2):比較兩個(gè)元組元素。
2、len(tuple):計(jì)算元組元素個(gè)數(shù)。
3、max(tuple):返回元組中元素最大值。
4、min(tuple):返回元組中元素最小值。
5、tuple(seq):將列表轉(zhuǎn)換為元組。
學(xué)習(xí)Python元組,有哪些必須要掌握的內(nèi)容?
1.Python元組
定義
元組是Python的一種內(nèi)建數(shù)據(jù)結(jié)構(gòu)。關(guān)于元組:
1、元組屬于序列,可以存放任意元素(任意類型對象),且有序(前后位置關(guān)系)。
2、元組支持整數(shù)索引訪問其中的數(shù)據(jù),也支持切片。
3、元組和列表不同是,元組不可變,列表可變。
元組不可變,某些操作比列表高效。
創(chuàng)建元組
可以用以下兩種方法創(chuàng)建元組:
1、使用()創(chuàng)建
2、使用構(gòu)造函數(shù)tuple()
圖:使用()創(chuàng)建元組
使用()可以創(chuàng)建元組,元組元素間使用”,”分隔,元組內(nèi)部元素可以是任意元素,也可以是元組。
圖:創(chuàng)建元組代碼示例
元組不可變除了不能修改,也不能刪除元組元素,但刪除與元組綁定的變量是沒問題的。
圖:元組不可變
使用()方式創(chuàng)建只有一個(gè)元素的元組時(shí)要注意,因?yàn)橐粋€(gè)元素使用()括起來,表示元素本身,如100, (100),兩者等價(jià),如果創(chuàng)建只包含100的元組應(yīng)該使用:(100,)方式。
圖:使用()創(chuàng)建只有一個(gè)元素的元組
使用構(gòu)造函數(shù)tuple()創(chuàng)建元組。了解更多信息可以使用help(tuple)來查看具體幫助內(nèi)容。
圖:tuple函數(shù)幫助
1、tuple()如果沒有參數(shù)創(chuàng)建一個(gè)空元組。
2、tuple(可迭代對象) 由可迭代對象創(chuàng)建一個(gè)元組,如字符串,列表。如果參數(shù)是元組將返回該元組。
圖:使用tuple函數(shù)創(chuàng)建元組
2.元組的訪問
和字符串列表一樣,元組支持使用整數(shù)索引(下標(biāo)方式訪問),也支持切片方式訪問元組的元素。
下標(biāo)索引如果是正整數(shù)則從0開始表示第一個(gè)元素,…… 最有一個(gè)元素用 元組長度-1表示;如果使用負(fù)整數(shù)做下標(biāo),-1表示最后一個(gè)元素,-2表示倒數(shù)第二個(gè)元素,…… 負(fù)的長度表示第一個(gè)元素。
!?。⌒枰⒁獾氖窍聵?biāo)索引不能越界?。。?/p>
1、使用索引訪問:
圖:使用索引訪問元組元素
2、切片訪問:
圖:使用切片訪問元組
3.使用內(nèi)建的常用函數(shù)操作元組
常用內(nèi)建函數(shù)len、max、min、sum、reversed可以操作元組,函數(shù)解釋如下:
操作示例如下:
注意事項(xiàng):
使用min,max,sum函數(shù)操作元組,元組元素類型能被函數(shù)接受才可以,否則將報(bào)異常等錯(cuò)誤。
4.元組常用方法
主要有count和index方法:
count返回元組中對應(yīng)值的個(gè)數(shù),index返回對應(yīng)值的位置(索引)。
5.元組運(yùn)算
元組支持 + 連接, * 復(fù)制運(yùn)算,in /not in 運(yùn)算
圖:元組運(yùn)算
6.序列
字符串,元組,列表都屬于Python的序列結(jié)構(gòu),序列具有很多相同的屬性和操作方法,如:序列中的每個(gè)元素被分配一個(gè)序號(位置,也叫索引),序號(索引)從0開始,依次類推;序列都支持切片操作等等。
圖:序列通用操作
Python內(nèi)置了多種序列結(jié)構(gòu):字符串、列表、元組、Unicode字符串、buffer對象、range對象。序列是Python中一種重要的數(shù)據(jù)結(jié)構(gòu),必須要掌握,也很容易掌握。
1
len(list)
列表元素個(gè)數(shù)
2
max(list)
返回列表元素最大值
3
min(list)
返回列表元素最小值
4
list(seq)
將元組轉(zhuǎn)換為列表
序號
方法
1
list.append(obj)
在列表末尾添加新的對象
2
list.count(obj)
統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
3
list.extend(seq)
在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來的列表)
4
list.index(obj)
從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置
5
list.insert(index, obj)
將對象插入列表
6
list.pop([index=-1])
移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
7
list.remove(obj)
移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
8
list.reverse()
反向列表中元素
9
list.sort( key=None, reverse=False)
對原列表進(jìn)行排序
10
list.clear()
清空列表
11
list.copy()
復(fù)制列表
文章標(biāo)題:python元組常用函數(shù) python元組的基本操作
當(dāng)前路徑:http://jinyejixie.com/article26/dossicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、定制網(wǎng)站、網(wǎng)站排名、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)