本次講座是關於 Python 中的另一個基本結構,稱為元組。
元組
元組類似於列表,因此我們可以使用它們來存儲項目列表。 但與列表不同的是,我們不能修改它們、添加新項目或刪除現有項目。 我們可以說元組是不可變的。
我來給你展示。 元組由括號而不是列表中的方括號標識。
numbers = (4, 1, 7, 5, 0, 9)
現在,如果我們拉出元組的方法列表,您可以看到我們沒有 append 或 insert 方法,因此無法將新項目添加到此元組中。 我們只有兩種方法:count 和 index。
我們使用“count”來計算一個項目的出現次數。 “索引”用於查找項目第一次出現的索引。 所以,我們只能得到一個元組的信息,不能改變它。 順便說一句,您在此處看到的這些其他方法以兩個下劃線開頭。
我們將這些稱為魔術方法。 它們更像是一個高級主題,我們將在以後的系列中涉及它們。
除了不可變之外,元組還具有列表的大部分特徵。
實際上,大多數時候您將使用列表,但元組也很有用。 如果您想創建一個項目列表並確保在您的程序中沒有意外修改該列表,那麼最好使用元組。
開箱
在本節中,我將向您展示一個強大的功能,我們在 python 中稱為解包。
讓我們定義一個元組“坐標”
coordinate = (1, 2, 3)
現在,想像一下這些是“x”、“y”和“z”的坐標。 現在假設我們想要獲取這些值並在我們的程序中的一些複雜表達式中使用它們。 也許,我們想將它們作為一個大型複雜公式的一部分。
因此,我們必須一起編寫如下代碼:
coordinate[0] * coordinate[1] * coordinate[2]
這行代碼會將所有坐標相乘,但這樣編寫代碼效率低下。 首先,讓我們使用更好的方法並將這些坐標存儲在單獨的變量中。
x = coordinate[0]
y = coordinate[1]
z = coordinate[2]
那更好。 正確的? 所以到目前為止沒有什麼新鮮事。 現在,讓我向您展示一個稱為解包的強大功能,使用它,我們可以用更少的代碼實現相同的結果。
x, y, z, = coordinate
現在,這一行代碼完全等同於上面寫的三行代碼。 讓我向你解釋它是如何工作的。
當 Python 解釋器看到這條語句時,它會獲取這個元組中的第一項並將其分配給變量。 同樣,第二項和第三項將分配給變量。 在此過程中,我們將這個元組解包為 3 個變量。 讓我們檢查一下我們的輸出。
解包也可以用列表來完成。
字典
我們將學習 Python 中的字典。 我們在想要存儲以鍵值對形式出現的信息的情況下使用字典。
這是一個例子。 想一想有一堆屬性的客戶,比如姓名、電子郵件、電話號碼、地址等。 現在這些屬性中的每一個都有一個值。 例如:
name = Jay
email = [email protected]
在此示例中,我們的鍵是姓名、電子郵件和電話。 每個鍵都與一個值相關聯,因此這是我們使用字典的地方。 使用字典,我們可以存儲一堆鍵值對。 讓我向您展示如何在 python 中定義字典。
customer = {
"name": "Jay",
"email": "[email protected]",
"age": 30,
"is_verified": True
}
鍵可以設置為字符串、數字、布爾值或任何值。 鍵是唯一的,只能定義一次,即我不能用其他數字再次定義“年齡”。 它們也區分大小寫。
現在,如果我輸入 customer["name"],
它會叫客戶的名字。 讓我們在終端上打印它:
我們還可以將這些方法與字典一起使用。 使用“get”方法可以復制上面演示的相同功能。
上述兩種方法之間有一個特別的區別。 讓我證明這一點。
您可以看到,當我們簡單地打印一個不存在的密鑰時,它會導致錯誤。 另一方面,使用該方法調用不存在的鍵會導致“無”結果,表示不存在值。 當使用“get”方法時,我們也可以提供一個默認值。
例如,如果這個字典沒有“生日”鍵,我們可以這樣提供:
customer.get("birthdate", "Jan 01, 1994")
我們還可以更新字典中的任何鍵,類似於列表。 假設我們要更新字典中的名稱鍵。 這是我們將如何做到的。
customer["name"] = "Shahbaz"
類似的語法也可用於在我們的字典中添加新鍵。 讓我們以類似的方式添加關鍵的“生日”。
customer["birthdate"] = "Jan 01, 1994"
因此,這是在 Python 中使用字典的基礎知識。 它們非常重要,並且在現實世界中有很多應用。
行使
您將編寫一個將數字轉換為單詞的程序,如下所示:
解決方案
這是給你們的解決方案。
phone = input("Phone: ")
digits_mapping = {
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine",
"0": "Zero"
}
output = " "
for ch in phone:
output += digits_mapping.get(ch, "!") + " "
print(output)
同樣,您可以構建其他有趣的程序,例如“表情符號轉換器” 玩得開心 PYTHONERS!
包起來!
我希望你喜歡這個講座。 接下來,我們將深入探討 Python 編程的一個重要方面、函數和參數。
發表評論