」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Python - 字典、集合、元組

Python - 字典、集合、元組

發佈於2024-09-01
瀏覽:651

這三個都是Python中不同類型的資料結構。這用於存儲不同的數據集合。根據我們要求的用例,我們需要在其中進行選擇。

Python - Dictionary, Set, Tuple

字典(dict):

  1. 字典是鍵值對的集合,其中每個鍵與一個值相關聯
  2. 可以根據鍵值檢索資料(基於鍵的搜尋),因為鍵要求唯一。
  3. 字典在 3.7 之前都是無序的,值可以改變。鍵名不能直接更改

句法:
庫存= {'蘋果':20,'香蕉':30,'胡蘿蔔':15,'牛奶':15}
print('\t1.庫存物品', inventory)

字典可以使用下列語法新增另一個值/修改現有鍵的值

庫存['雞蛋'] = 20
庫存['麵包'] = 25
print('\t2.更新的庫存物品', inventory)
庫存['雞蛋']=庫存['雞蛋'] 5
print('\t3.補貨後', 庫存)

  • 可以使用 del 關鍵字從 dict 中刪除資料。
  • 檢查資料是否存在可以使用 in 關鍵字來完成。結果將為布林值。

刪除庫存['胡蘿蔔']
del 庫存['麵包']
print('\t4.刪除後更新庫存', inventory)

is_bananas_in_inventory = 庫存中的「香蕉」
print('\t5a. 香蕉在庫存中嗎', is_bananas_in_inventory)
is_oranges_in_inventory = 庫存中的「橘色」
print('\t5b.庫存中是否有橘色', is_oranges_in_inventory)

筆記:
另外 dict.items() 會將字典中的每個項目作為元組(如鍵值對)給出。透過使用 list(dict.items()) 我們也可以獲得列表形式的資料。使用 for 迴圈和 if 條件,我們可以存取特定的鍵並對該資料執行所需的操作

for product, product_count in inventory.items():
    print('\t\t6. Product:', product, 'count is:', product_count)
print ('\t7. Iterating inventory gives tuple:', inventory.items())

#Printing only egg count(Value of key 'egg') by itearting dict
for product, product_count in inventory.items():
    if product is 'egg':
        print('\t8. Product:', product, ' its count is:', product_count)

#Printing egg count (value of key 'egg')
print('\t9. Count of apple',inventory['egg'])
Output:
        1. Inventory items {'apple': 20, 'Banana': 30, 'carrot': 15, 'milk': 15}
        2. Updated Inventory items {'apple': 20, 'Banana': 30, 'carrot': 15, 'milk': 15, 'egg': 20, 'bread': 25}
        3. After restocking {'apple': 30, 'Banana': 30, 'carrot': 15, 'milk': 15, 'egg': 25, 'bread': 25}
        4. Updated Inventory after delete {'apple': 30, 'Banana': 30, 'milk': 15, 'egg': 25}
        5a. Is banana in inventory True
        5b. Is Orange in inventory False
                6. Product: apple count is: 30
                6. Product: Banana count is: 30
                6. Product: milk count is: 15
                6. Product: egg count is: 25
        7. Iterating inventory gives tuple: dict_items([('apple', 30), ('Banana', 30), ('milk', 15), ('egg', 25)])
        8. Product: egg  its count is: 25
        9. Count of apple 25

放: 集合是唯一元素的無序集合。集合是可變的,但它們不允許重複的元素。

句法:

botanical_garden = {'玫瑰', '蓮花', '百合'}
botanical_garden.add('茉莉花')
botanical_garden.remove('玫瑰')
is_present_Jasmine = '茉莉' in botanical_garden

上面我們可以看到定義了一個集合,增加了一個值並刪除了它。如果我們在集合中加入相同的元素,則會出現錯誤。

我們也可以像維恩圖一樣比較兩個集合。如兩個資料集的並集、差值、交集。


botanical_garden = {'元組', '玫瑰', '百合', '茉莉', '蓮花'} Rose_garden = {'玫瑰', '蓮花', '木槿'} common_flower= botanical_garden.intersection(rose_garden) flowers_only_in_bg = botanical_garden.difference(rose_garden) flowers_in_both_set = botanical_garden.union(rose_garden) 預設輸出是一組。 如果需要,我們可以使用 list(expression) 將其輸入到清單中
botanical_garden = {'Tuple', 'rose', 'Lily', 'Jasmine', 'lotus'}
rose_garden = {'rose', 'lotus', 'Hybiscus'}

common_flower= botanical_garden.intersection(rose_garden)
flowers_only_in_bg = botanical_garden.difference(rose_garden)
flowers_in_both_set = botanical_garden.union(rose_garden)

Output will be a set by default. 
If needed we can typecase into list using list(expression)

元組: 元組是不可變的有序元素集合,這意味著它在創建後就無法更改。

句法:


ooty_trip = ('烏蒂', '2024-1-1', '植物園') munnar_trip = ('Munar', '2024-06-06', 'Eravikulam 國家公園') germany_trip = ('德國', '2025-1-1', '呂訥堡') print('\t1.行程詳情', ooty_trip, germany_trip) #使用索引存取元組 位置 = ooty_trip[0] 日期 = ooty_trip[1] 地點 = ooty_trip[2] print(f'\t2a.地點: {location} 日期: {date} 地點: {place} ') location, date, place =germany_trip # 將一個元組分配給 3 個不同的變量 print(f'\t2b.地點: {location} 日期: {date} 地點: {place} ') print('\t3. ooty_trip 的計數為 ',ooty_trip.count) 輸出: 1. 行程詳情 ('Ooty', '2024-1-1', 'Botanical_Garden') ('德國', '2025-1-1', 'Lueneburg') 2a.地點:烏提 日期:2024年1月1日 地點:Botanical_Garden 2b.地點:德國日期:2025年1月1日地點:呂訥堡 3. ooty_trip的計數為
botanical_garden = {'Tuple', 'rose', 'Lily', 'Jasmine', 'lotus'}
rose_garden = {'rose', 'lotus', 'Hybiscus'}

common_flower= botanical_garden.intersection(rose_garden)
flowers_only_in_bg = botanical_garden.difference(rose_garden)
flowers_in_both_set = botanical_garden.union(rose_garden)

Output will be a set by default. 
If needed we can typecase into list using list(expression)
可以使用索引存取元組。元組的值可以輕鬆地分配給多個變數。我們可以組合兩個元組來建立另一個元組。但元組不能修改。

版本聲明 本文轉載於:https://dev.to/sureshlearnspython/python-dictionary-set-tuple-5em7?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 陣列
    陣列
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2025-01-03
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2025-01-03
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1和$array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建構一...
    程式設計 發佈於2025-01-02
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2025-01-02
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2025-01-02
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2025-01-02
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2025-01-02
  • 如何從 Pandas DataFrame 欄位中刪除具有空值的行?
    如何從 Pandas DataFrame 欄位中刪除具有空值的行?
    從Pandas DataFrame 列中刪除空值要根據特定列中的空值從Pandas DataFrame 中刪除行,請依照下列步驟操作步驟:1.識別列:決定DataFrame中包含要刪除的空值的欄位。在本例中,它是“EPS”列。 2。使用 dropna() 方法:dropna() 方法可讓您根據特定條...
    程式設計 發佈於2025-01-01
  • 如何在 Go 中正確鍵入斷言介面值片段?
    如何在 Go 中正確鍵入斷言介面值片段?
    型別斷言介面值切片在程式設計中,常常會遇到需要型別斷言介面值切片的情況。然而,這有時會導致錯誤。讓我們深入研究為什麼斷言介面值切片可能並不總是可行的原因。 當嘗試從介面值切片中將斷言鍵入特定類型(例如[]Symbol)時,[]Node ,如提供的範例所示:args.([]Symbol)您可能會遇到以...
    程式設計 發佈於2025-01-01
  • 為什麼 `list.sort()` 回傳 `None` 以及如何取得排序清單?
    為什麼 `list.sort()` 回傳 `None` 以及如何取得排序清單?
    了解Sort() 方法及其傳回值當嘗試排序並傳回唯一單字清單時,您可能會遇到常見問題: 「return list.sort()」語法未如預期傳回排序清單。這可能會令人困惑,因為它似乎與 sort() 方法的目的相矛盾。為了澄清這一點,讓我們檢查一下 list.sort() 的工作原理以及為什麼它在這...
    程式設計 發佈於2025-01-01
  • 如何使“preg_match”正規表示式不區分大小寫?
    如何使“preg_match”正規表示式不區分大小寫?
    使 preg_match 不區分大小寫在問題中提供的程式碼片段中,區分大小寫導致無法實現預期結果。要修正此問題,您可以在正規表示式中使用 i 修飾符,確保其不區分大小寫。 以下是修改程式碼的方法:preg_match("#(.{100}$keywords.{100})#i", s...
    程式設計 發佈於2025-01-01
  • DocumentFilter 如何有效地將 JTextField 輸入限制為整數?
    DocumentFilter 如何有效地將 JTextField 輸入限制為整數?
    將 JTextField 輸入過濾為整數:使用 DocumentFilter 的有效方法雖然直觀,但使用鍵偵聽器來驗證 JTextField 中的數字輸入是不夠的。相反,更全面的方法是使用 DocumentFilter。 DocumentFilter:強大的解決方案DocumentFilter 監視...
    程式設計 發佈於2025-01-01
  • 如何從 Go 程式設定 `ulimit -n`?
    如何從 Go 程式設定 `ulimit -n`?
    如何在golang程式中設定ulimit -n? Go的syscall.Setrlimit函式允許在Go程式中設定ulimit -n。這允許在程式內自訂資源限制,而無需進行全域變更。 瞭解 setrlimitsetrlimit 系統呼叫設定目前程序的資源限制。它需要兩個參數:資源限制類型 (RLIM...
    程式設計 發佈於2024-12-31
  • 為什麼 Java 列印陣列的方式很奇怪,如何正確列印陣列的內容?
    為什麼 Java 列印陣列的方式很奇怪,如何正確列印陣列的內容?
    Java 中奇怪的數組打印在 Java 中,數組不僅僅是值的集合。它們是具有特定行為和表示的物件。當您使用 System.out.println(arr) 列印陣列時,您實際上是在列印物件本身,而不是其內容。 此預設表示顯示陣列的類別名,後面接著該物件的十六進位雜湊程式碼目的。因此,例如,整數數組可...
    程式設計 發佈於2024-12-31
  • 使用 Lithe 進行 PHP 會話管理:從基本設定到進階使用
    使用 Lithe 進行 PHP 會話管理:從基本設定到進階使用
    當我們談論 Web 應用程式時,首要需求之一是在使用者瀏覽頁面時維護使用者資訊。這就是 Lithe 中的 會話管理 的用武之地,它允許您儲存登入資訊或使用者首選項等資料。 安裝簡單快速 要開始在 Lithe 中使用會話,您只需透過 Composer 來安裝會話中間件。只需在專案的...
    程式設計 發佈於2024-12-31

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3