python映射类型是什么意思_Python对象类型
Python對(duì)象類型
2019-02-04
蘭喆
蘭喆的生活
問題1:Python知識(shí)結(jié)構(gòu)?
答:1、程序由模塊構(gòu)成;2、模塊包含語句;3、語句包含表達(dá)式;4、表達(dá)式創(chuàng)建并處理對(duì)象。
問題2:Python中核心數(shù)據(jù)類型有哪些?
答:數(shù)字、字符串、列表、字典、元組、文件、和集合一般被認(rèn)為是核心對(duì)象(數(shù)據(jù))類型。
問題2:為何把它們稱作“核心”數(shù)據(jù)類型。
答:它們被稱作“核心”類型是因?yàn)樗鼈兪荘ython語言自身的一部分,并且總是有效的。為了建立其他的對(duì)象,通常必須調(diào)用被導(dǎo)入模塊的函數(shù)。大多數(shù)核心類型都有特定的語法創(chuàng)建其對(duì)象:例如,‘spam’是一個(gè)創(chuàng)建字符串的表達(dá)式,而且決定了可以被應(yīng)用的操作的集合。正是因?yàn)檫@一點(diǎn),核心類型與Python的語法緊密地結(jié)合在一起,與之相比較,必須調(diào)用內(nèi)置的‘open’函數(shù)去創(chuàng)建一個(gè)文件對(duì)象(通常也被認(rèn)為是一種核心類型)。
問題3:“不可變性”代表了什么?Python核心類型中有哪些是具有不可變性?
答:一個(gè)具有“不可變性”的對(duì)象是一個(gè)在其創(chuàng)建以后不能夠被改變的對(duì)象,也就是其所占據(jù)的存儲(chǔ)空間是不可變的,但是可以建立一個(gè)新的字符串以同一個(gè)變量名對(duì)其進(jìn)行賦值。Python中的數(shù)字、字符串和元組都屬于這個(gè)分類。盡管無法在原位置位置改變一個(gè)不可變的對(duì)象,但是總是可以通過運(yùn)行一個(gè)表達(dá)式創(chuàng)建一個(gè)新的對(duì)象。在Python新版本中,字節(jié)串?dāng)?shù)組為文本提供了可變性,不過它們并非普通的字符串,而且僅僅支持8位編碼的文本文件(如ASCII)。
'spam'
>>>S[]=z#報(bào)錯(cuò),說明字符串不可變
Traceback(mostrecentcalllast):
File"",line1,in
NameError:name'z'isnotdefined
>>>S='z'+S[1:]#但是可以建立一個(gè)新的字符串,名字不變
'zpam'
問題4:“序列”是什么意思?Python的核心類型哪些是屬于這個(gè)分類中?
答:一個(gè)“序列”是系列具有位置順序的對(duì)象集合體。字符串、列表和元組是Python中所有的序列。它們共同擁有序列的一般操作,例如索引、合并和分片,但又有各自的類型特定的方法調(diào)用。一個(gè)相關(guān)術(shù)語“可迭代性”,意味著任何一個(gè)能夠按需提供它的內(nèi)容的物理或虛擬序列。
問題5:“映射”是什么意思?Python中哪些核心類型是映射?
答:“映射”表示將鍵與相關(guān)值相互關(guān)聯(lián)映射的對(duì)象。Python中字典是其核心類型中唯一的映射類型。映射沒有從左至右的位置,它們支持通過鍵(key)獲取數(shù)據(jù),并包含了類型特定的方法調(diào)用。
問題6:什么是“多態(tài)”?為何關(guān)心“多態(tài)”?
答:“多態(tài)”意味著一個(gè)運(yùn)算符(如+)的意義取決于被操作的對(duì)象。“多態(tài)”是使用Python中關(guān)鍵思想之一:不要把代碼限制在特定的類型上,使代碼自動(dòng)適用于多種類型。
問題7:內(nèi)置對(duì)象?
注:列表提供了其他對(duì)象的有序集合,而字典則是通過key儲(chǔ)存對(duì)象。列表和字典都可以嵌套,可以隨著需求擴(kuò)展和刪減,并能夠包含任意類型的對(duì)象。在Python中沒有類型聲明,運(yùn)行的表達(dá)式語法決定了創(chuàng)建和使用的對(duì)象類型。一旦創(chuàng)建了一個(gè)對(duì)象,它就和操作集合綁定了,即只能對(duì)字符串做字符串相關(guān)操作,對(duì)列表進(jìn)行列表的相關(guān)操作。
問題8:數(shù)字?
答:Python中數(shù)字包含的類型有:整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)、固定精度十進(jìn)制數(shù)、帶分子分母的有理數(shù)等。
>>>len(str(2**8))
3
注:Python中嵌套的調(diào)用從內(nèi)向外進(jìn)行運(yùn)算,首先計(jì)算2**8然后str函數(shù)將其值轉(zhuǎn)化為字符串,接著len函數(shù)得到該字符串的長(zhǎng)度,也就是位數(shù)的個(gè)數(shù)。
>>>importmath
>>>math.pi
>>>math.sqrt(4)
2.
注:模塊是我們導(dǎo)入以供使用的額外工具包。上面的math就是一個(gè)模塊。
問題9:字符串?
答:字符串是由單字符的字符串所組成的序列。(列表和元組也是序列)序列是按照從左至右的偏移量進(jìn)行編碼的,從開始。字符串具有不可變性。
>>>S='spam'
's'
'm'
>>>S[len(S)-1]
'm'
'pa'
>>>S+'ex'#注意+號(hào)對(duì)不同的對(duì)象有不同的含義,此處為拼接
'spamex'
'spamspam'
問題1:列表?
答:列表是一個(gè)任意類型的對(duì)象的位置相關(guān)的有序集合,沒有固定大小,而且列表是可變的,通過相應(yīng)的偏移量進(jìn)行賦值可以定位地對(duì)列表進(jìn)行修改。列表沒有固定類型的約束。列表用[]。盡管列表沒有固定大小,但是Python是不允許引用不存在的元素,超出列表末尾之外的索引總是會(huì)報(bào)錯(cuò)的。
問題11:嵌套?
答:Python核心數(shù)據(jù)類型的一個(gè)優(yōu)秀特性就是支持任意的嵌套。能夠以任意組合進(jìn)行嵌套,并且可以多個(gè)層次進(jìn)行嵌套。例如,讓一個(gè)列表包含一個(gè)字典,再讓這個(gè)字典包含一個(gè)列表等。
>>>M=[[1,2,3],
...[4,5,6],
...[7,8,9]]
[[1,2,3],[4,5,6],[7,8,9]]
[4,5,6]
>>>M[1][2]
6
注:M是一個(gè)列表嵌套列表,就構(gòu)成了一個(gè)3*3矩陣,M[1]是讀取整個(gè)第二行,M[1][2]是讀取整個(gè)第二行第三個(gè)元素。Python是從左至右依次執(zhí)行代碼。
問題12:推導(dǎo)?
答:推導(dǎo)是通過對(duì)序列中的每一項(xiàng)運(yùn)行一個(gè)表達(dá)式來創(chuàng)建一個(gè)新的列表的方法,每次一個(gè),從左至右。列表推到是編寫在方括號(hào)[]中的(提醒你在創(chuàng)建列表這個(gè)事實(shí))。
>>>col2=[row[1]forrowinM]
[2,5,8]
問題13:字典?
答:字典不是序列,而是一種映射(mapping)。映射同樣是一個(gè)其他對(duì)象的集合,但是它們是通過鍵(key)而不是相對(duì)位置來存儲(chǔ)對(duì)象的。字典是Python中唯一一種映射類型,具有可變性。字典作為常量編寫時(shí),編寫在大括號(hào){}中,并包含一系列的“鍵:值”對(duì)。
>>>D['name']='Bob'
>>>D['job']='teacher'
>>>D['age']=4
{'name':'Bob','job':'teacher','age':4}
>>>print(D['age'])
4
注:與列表中禁止邊界外的賦值不同,對(duì)一個(gè)新的字典的鍵賦值會(huì)創(chuàng)建該鍵。字符串一定要用‘’括起來。通過鍵來索引一個(gè)字典往往是Python中編寫搜索的最快方法。
>>>car=dict(name='BMW',color='red',size=24)
{'name':'BMW','color':'red','size':24}
>>>car1=dict(zip(['name','color','size'],['BMW','black','21']))
{'name':'BMW','color':'black','size':'21'}
創(chuàng)建新的字典還可以用dict()函數(shù),或者用zip進(jìn)行鍵和值配對(duì)。
tip:盡管可以通過賦值一個(gè)新鍵來擴(kuò)展字典,但是訪問一個(gè)不存在的鍵仍然是一個(gè)錯(cuò)誤。
問題14:如何查找某一個(gè)鍵是否在某個(gè)字典中?
答:可以用if測(cè)試、in測(cè)試等。
>>>A={'a':1,'b':2,'c':3}
False
>>>if'd'notinA:
...print('ture')
...
ture
問題15:元組?
答:就想列表一樣,元組是一個(gè)序列,但是具有不可變性。支持混合的類型和嵌套,被編寫在圓括號(hào)()中,通常圓括號(hào)可以省略。
>>>T='spam',3.,[11,22,33]
'spam'
>>>T[2][1]
22
>>>T.append(4)
Traceback(mostrecentcalllast):
File"",line1,in
AttributeError:'tuple'objecthasnoattribute'append'
問題16:文件?
答:文件對(duì)象是Python代碼調(diào)用電腦上存放的外部文件的主要接口。它們能被用于讀取和寫入文本記錄、音頻片段、Excel文檔、保存郵件以及任何你保存在電腦上的東西。雖然文件是核心類型,但是它有些特殊:沒有特定的字面量語法來創(chuàng)建文件。創(chuàng)建一個(gè)文件對(duì)象,需要調(diào)用內(nèi)置open()函數(shù)以字符串形式傳遞給它一個(gè)外部文件名以及一個(gè)可選的表示處理模式的字符串。
>>>f=open('data.txt','w')
>>>f.write('hello\n')
6
>>>f.write('world\n')
6
>>>f.close()
>>>f=open('data.txt')
>>>text=f.read()
'hello\nworld\n'
>>>print(text)
hello
world
總結(jié)
以上是生活随笔為你收集整理的python映射类型是什么意思_Python对象类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买一辆车24元和一个小熊八元一共需要多少
- 下一篇: python中find函数忽略大小写_p