摘要:本章內容主要是對列表的進一步操作,以及初識元組數據結構。列表非常適合用于存儲在程序運行期間可能變化的數據集,列表可以被修改。代碼結果相比于列表,元組是更簡單的數據結構。
《Python編程:從入門到實踐》筆記。1. 遍歷列表
本章內容主要是對列表的進一步操作,以及初識元組數據結構。
本章主要是for循環:
# 代碼: magicians = ["alice", "david", "carolina"] for magician in magicians: print(magician.title() + ", that was a great trick") print("I can"t wait to see your next trick, " + magician.title() + ". ") print("Thank you, everyone. That was a great magic show!") # 輸出: Alice, that was a great trick! I can"t wait to see your next trick, Alice. David, that was a great trick! I can"t wait to see your next trick, David. Carolina, that was a great trick! I can"t wait to see your next trick, Carolina. Thank you, everyone. That was a great magic show!
這里有兩個值得注意的地方,一個是“冒號”:for關鍵字所在的行最后有一個冒號;一個是縮進問題,Python中的代碼塊都是以縮進為標準,不像C/C++,Java這樣的語言以花括號表示代碼塊。IndentationError指縮進錯誤。
2. 創建數值列表這有使用一個重要的生成數列的函數 range() ,以及將數據轉換成列表的 list() 函數
# 代碼: print(list(range(6))) # 結束值(不包含結束值) print(list(range(1, 6))) # 起始值(包含),結束值(不含) print(list(range(1, 6, 2))) # 起始值,結束值,步長;最后一個數小于結束值 print(list(range(6, 1, -1))) # 負數步長,此時起始值要大于結束值 print(list(range(1, 6, -1))) # 負數步長,若起始值小于結束值,則輸出空列表 # 結果: [0, 1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 3, 5] [6, 5, 4, 3, 2] []
range()函數也常用語for循環,用于標識循環次數,或者用于生成更復雜的列表:
# 代碼: squares = [] for value in range(1, 11): squares.append(value ** 2 + 1) print(squares) # 結果: [2, 5, 10, 17, 26, 37, 50, 65, 82, 101]
對于生成列表,還有一種更簡潔的寫法,即列表解析式,如上述生成列表的代碼可以縮短為一行:
# 代碼: squares = [value ** 2 for value in range(1, 11)] print(squares) squares_2 = [value ** 2 for value in range(1, 11) if value % 2 == 0] print(squares_2) # 結果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] [4, 16, 36, 64, 100]
列表解析式還可以更復雜,這里就不再贅述了。
對數字列表執行簡單的統計計算:
求一個數字列表的最大、最小值以及所有元素之和:
# 代碼: digits = list(range(10)) print(min(digits), max(digits), sum(digits)) # 結果: 0 9 453. 使用列表的一部分 3.1 切片
切片操作用于取原始列表的一部分:
# 代碼: players = ["charles", "martina", "michael", "florence", "eli"] # [起始:結束:步長], 其中,結果列表包含起始索引,但不包含結束索引 print(players[0:3]) print(players[:3]) # 如果從0開始切片,0可以省略 print(players[1:3]) print(players[2:]) # 如果要便利到最后一個元素,結束索引可以省略,此時最后一個元素會被包含 print(players[-3:]) print(players[::2]) # 設置了步長,但省略了結束索引,列表最后一個元素如果被遍歷到,則會被包含 print(players[:4:2]) # 設置了步長和結束索引,索引4的元素也被遍歷到了,但不會被包含在結果中 # 結果: ["charles", "martina", "michael"] ["charles", "martina", "michael"] ["martina", "michael"] ["michael", "florence", "eli"] ["michael", "florence", "eli"] ["charles", "michael", "eli"] ["charles", "michael"]
切片操作的參數設置和range()函數的參數設置十分相似,起始,結束,步長都可以為負值,這里先總結一條規律:如果步長為正數,則起始位置要在結束位置的左邊;若步長為負數,則起始位置要在結束位置的右邊。
3.2 復制列表這里有深淺復制的問題。如果直接將一個變量賦值到另一個變量,那么內存中的數據依然只有一份,而不是兩份,這兩個變量都指向內存中同一個存放數據的內存區域,如果用C/C++的語言來描述,Python中的變量都相當于指針,這兩個變量(指針)指向的是同一片內存,對這兩個變量(指針)的操作會相互影響,因為都作用于同一內存塊,如下:
# 代碼: # 淺復制 players = ["charles", "martina", "michael", "florence", "eli"] print(players) names = players names.append("test") print(players) # 結果: ["charles", "martina", "michael", "florence", "eli"] ["charles", "martina", "michael", "florence", "eli", "test"]
如果想在內存中將原來的數據復制出一份新的,則需要深復制,切片操作則是實現深復制的一種方法:
# 代碼: # 深復制 players = ["charles", "martina", "michael", "florence", "eli"] print(players) names = players[:] names.append("test") print(names) print(players) # 結果: ["charles", "martina", "michael", "florence", "eli"] ["charles", "martina", "michael", "florence", "eli", "test"] ["charles", "martina", "michael", "florence", "eli"]4. 元組(tuple)
和列表緊密聯系的一個數據結構則是元組。列表非常適合用于存儲在程序運行期間可能變化的數據集,列表可以被修改。然而有時你需要創建一系列不可修改的元素,這個時候則需要用到元組。
元組用圓括號來標識,以下是聲明一個元組:
# 代碼: my_tuple = () # 空元組 one_tuple = (1,) # 聲明含有一個元素的元組。不是one_tuple = (1)
對元組中元素的訪問以及對元組的遍歷都和對列表的操作一樣;不同的是,元組中的元素不能被改變。
雖然元組中的元素不能改變,但是元組變量的值可以改變。從C/C++的角度來看,元組變量是個指針,元組相當于一個const數組,數組雖然不能被改變,但指針可以指向別處。
# 代碼: test_tuple = (1, 2, 3, 4, 5) print(test_tuple) test_tuple = (2, 3, 4, 5, 6) print(test_tuple) # 結果: (1, 2, 3, 4, 5) (2, 3, 4, 5, 6)
相比于列表,元組是更簡單的數據結構。如果需要存儲的一組值在程序的整個生命周期內都不變,則可使用元組。
迎大家關注我的微信公眾號"代碼港" & 個人網站 www.vpointer.net ~
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41799.html
摘要:本章主要介紹列表的基礎與簡單操作。列表是什么列表由一系列按特定順序排列的元素組成。中用中括號來表示列表,并用逗號分隔其中的元素。代碼結果打印了該列表的內部表示訪問與使用列表中的元素大多數編程語言中,索引都是從開始的,而不是從開始的。 《Python編程:從入門到實踐》筆記。本章主要介紹列表的基礎與簡單操作。 1. 列表(List)是什么 列表由一系列按特定順序排列的元素組成。類似于C/...
摘要:本章主要介紹字典的概念,基本操作以及一些進階操作。使用字典在中,字典是一系列鍵值對。中用花括號來表示字典。代碼定義空字典的語法結果如果要修改字典中的值,只需通過鍵名訪問就行。 《Python編程:從入門到實踐》筆記。本章主要介紹字典的概念,基本操作以及一些進階操作。 1. 使用字典(Dict) 在Python中,字典是一系列鍵值對。每個鍵都與一個值相關聯,用鍵來訪問值。Python中用...
摘要:本節中將繪制幅圖像收盤折線圖,收盤價對數變換,收盤價月日均值,收盤價周日均值,收盤價星期均值。對數變換是常用的處理方法之一。 《Python編程:從入門到實踐》筆記。本篇是Python數據處理的第二篇,本篇將使用網上下載的數據,對這些數據進行可視化。 1. 前言 本篇將訪問并可視化以兩種常見格式存儲的數據:CSV和JSON: 使用Python的csv模塊來處理以CSV(逗號分隔的值)...
摘要:小結本篇主要講述了如何生成數據集以及如何對其進行可視化如何使用創建簡單的圖表如果使用散點圖來探索隨機漫步過程如何使用創建直方圖,以及如何使用直方圖來探索同時擲兩個面數不同的骰子的結果。 《Python編程:從入門到實踐》筆記。從本篇起將用三篇的篇幅介紹如何用Python進行數據可視化。 1. 前言 從本篇開始,我們將用三篇的篇幅來初步介紹如何使用Python來進行數據可視化操作。本篇的...
摘要:本章主要講述條件語句等結構。是一條包羅萬象的語句,只要不滿足前面的條件,其中的代碼就會執行,這可能會引入無效甚至惡意的數據。使用語句處理列表語句常和循環結構配合使用。 《Python編程:從入門到實踐》筆記。本章主要講述條件語句if, if-else, if-elif, if-elif-else等結構。 1. 條件測試 包括了相等,不等,大于,小于,大于等于,小于等于,存在于,與或非等...
閱讀 3712·2021-10-12 10:11
閱讀 1979·2019-08-30 15:53
閱讀 1588·2019-08-30 13:15
閱讀 2302·2019-08-30 11:25
閱讀 1797·2019-08-29 11:24
閱讀 1647·2019-08-26 13:53
閱讀 3521·2019-08-26 13:22
閱讀 1747·2019-08-26 10:24