国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[原創]Python入門學習之數據結構

2019-11-14 17:02:59
字體:
來源:轉載
供稿:網友

PReamble:

  在未學習python之前,使用c/c++已有5年之久。雖對python剛學習,但也領略到了python的強大之處,開拓了自己的視野和思維。

 

一 變量

  python中的變量與c/c++中的變量不同。在c/c++中,變量的本質就是內存的地址,但在python中,當我們定義一個變量并賦值時,如下: 

a='ABC'

  python的解釋器干了兩件事情:(1)在內存中創建一個‘ABC’的字符串;(2)在內存中再創建一個名為a的變量,并把它指向‘ABC’。也就是說,對于python占用的內存比c/c++中要多。這里一定要正確python中對定義變量的處理。

 

二 編碼

  對于編碼的問題,有歷史因素在里面。由于計算機最初是在美國制造,故最早只是把常用的127個字符編碼到了計算機里,也就是ASCII碼。但是在后來的發展中,還需要處理像中文這樣的字符,此時單個字節就不夠用了,至少需要使用2個字節。為了處理全世界所有的語言,就發明了Unicode來解決此問題。Unicode通常使用2個字節表示一個字符,個別偏僻的可能需要用到4個字節。

  引入Unicode雖然解決了多種語言的編碼問題,但是在使用中還是存在資源浪費的問題。如果統一使用Unicode編碼,但是所有的文本都是英文的話,那豈不是要浪費很多內存?為了解決這個問題,后來引入了UTF-8編碼。在UTF-8編碼中,會把Unicode字符根據字符需要占用的字節數進行分配,比如英文字母就編碼成1個字節,漢字通常是3個字節。這樣就可以節省很多內存了。

 

三 list和tuple

  list和tuple都是python內置的一數據類型。其區別在于tuple是一旦初始化后就不可以再更改了。定義一個list如下:

#define a listl=['Michael','Luffy','Nancy']

   list是一種有序的集合,與c/c++中的數組一樣,下標從0開始,可以隨時對其進行添加和刪除其中的元素。可以對list進行的操作有:append(),insert(),pop()和[]。

  當然list是可以嵌套定義的,如下:

#define a nest listl=['Michael','Luffy','Nancy', ['Corey','Jason']]

   tuple必須在初始化時進行賦值,如下所示:

#define a tuplet=('Michael','Luffy','Nancy')

   這里我們需要對tuple的不可更改性進行一下講解。tuple的不可更改性只是針對對它的元素的“指向”,比如上面的例子中,tuple分別指向'Michael','Luffy'和'Nancy',所不能更改的就是只能一直指向這些字符串,而不能在定義之后再指向其他字符串。

  理解了“不可更改”的真正含義,我們就可以定義一個可以變換內容的tuple了。如下: 

#define a alterable tuplet=('Michael','Luffy','Nancy',['Corey','Jason'])t[3][0]='Jefrey't[3][1]='Avery'

   從上面的代碼可以看出,先定義一個名為t的tuple。在修改了數據之后并未修改初始化時指向的list,只是更改了list的內容,對于python來說這是允許的。

 

四 dict

  python中的dict就是c/c++中的map,是一個由鍵/值對組成的結構。對于dict我們要注意的是它對key的要求,dict要求key必須是不可變對象。這是因為dict根據key來計算Value的存儲位置,如果每次計算相同的key得出的結果不同,那么dict的內部就混亂了,通過這個key計算位置的算法稱之為哈希算法。

  在python中,字符串和整數都是不可變對象,而list則是可變,不能做為key使用。

 

五 后記

  上述這些都是個人學習python總結所得,如有錯誤之處,敬請留言!!!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃源县| 综艺| 玉溪市| 汶川县| 定陶县| 施秉县| 建瓯市| 平谷区| 建水县| 宣化县| 萍乡市| 万宁市| 稻城县| 耒阳市| 沙坪坝区| 精河县| 哈密市| 乡宁县| 资阳市| 荔浦县| 福清市| 彝良县| 永定县| 革吉县| 喀喇沁旗| 辰溪县| 江北区| 漠河县| 阳山县| 平利县| 扬中市| 六安市| 溧阳市| 巴里| 天峻县| 兴安县| 巩留县| 星座| 呼伦贝尔市| 广南县| 宣威市|