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