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

Python - 字典、集合、元組

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

這三個都是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]刪除
最新教學 更多>
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-07-17
  • 對象擬合:IE和Edge中的封面失敗,如何修復?
    對象擬合:IE和Edge中的封面失敗,如何修復?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    程式設計 發佈於2025-07-17
  • 如何實時捕獲和流媒體以進行聊天機器人命令執行?
    如何實時捕獲和流媒體以進行聊天機器人命令執行?
    在開發能夠執行命令的chatbots的領域中,實時從命令執行實時捕獲Stdout,一個常見的需求是能夠檢索和顯示標準輸出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    程式設計 發佈於2025-07-17
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-07-17
  • 如何同步迭代並從PHP中的兩個等級陣列打印值?
    如何同步迭代並從PHP中的兩個等級陣列打印值?
    同步的迭代和打印值來自相同大小的兩個數組使用兩個數組相等大小的selectbox時,一個包含country代碼的數組,另一個包含鄉村代碼,另一個包含其相應名稱的數組,可能會因不當提供了exply for for for the uncore for the forsion for for ytry...
    程式設計 發佈於2025-07-17
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。要解決此問題並確保在後續頁面訪問中執行腳本,Firefox用戶應設置一個空功能。 警報'); }; alert('inline Alert')...
    程式設計 發佈於2025-07-17
  • 表單刷新後如何防止重複提交?
    表單刷新後如何防止重複提交?
    在Web開發中預防重複提交 在表格提交後刷新頁面時,遇到重複提交的問題是常見的。要解決這個問題,請考慮以下方法: 想像一下具有這樣的代碼段,看起來像這樣的代碼段:)){ //數據庫操作... 迴聲“操作完成”; 死(); } ? > ...
    程式設計 發佈於2025-07-17
  • PHP SimpleXML解析帶命名空間冒號的XML方法
    PHP SimpleXML解析帶命名空間冒號的XML方法
    在php 很少,請使用該限制很大,很少有很高。例如:這種技術可確保可以通過遍歷XML樹和使用兒童()方法()方法的XML樹和切換名稱空間來訪問名稱空間內的元素。
    程式設計 發佈於2025-07-17
  • Python元類工作原理及類創建與定制
    Python元類工作原理及類創建與定制
    python中的metaclasses是什麼? Metaclasses負責在Python中創建類對象。就像類創建實例一樣,元類也創建類。他們提供了對類創建過程的控制層,允許自定義類行為和屬性。 在Python中理解類作為對象的概念,類是描述用於創建新實例或對象的藍圖的對象。這意味著類本身是使用...
    程式設計 發佈於2025-07-17
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在時間戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源於遺留實現的關注,這些限制需要對當前的_timestamp功能進行特定的實現。 創建表`foo`( `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-07-17
  • Java數組中元素位置查找技巧
    Java數組中元素位置查找技巧
    在Java數組中檢索元素的位置 利用Java的反射API將數組轉換為列表中,允許您使用indexof方法。 (primitives)(鏈接到Mishax的解決方案) 用於排序陣列的數組此方法此方法返回元素的索引,如果發現了元素的索引,或一個負值,指示應放置元素的插入點。
    程式設計 發佈於2025-07-17
  • 圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    在chrome 中刪除一個頻繁的問題時,在與Chrome and IE9中的圖像一起工作時,遇到了一個頻繁的問題。和“邊境:無;”在CSS中。要解決此問題,請考慮以下方法: Chrome具有忽略“ border:none; none;”的已知錯誤,風格。要解決此問題,請使用以下CSS ID塊創建帶...
    程式設計 發佈於2025-07-17
  • FastAPI自定義404頁面創建指南
    FastAPI自定義404頁面創建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    程式設計 發佈於2025-07-17
  • Java中假喚醒真的會發生嗎?
    Java中假喚醒真的會發生嗎?
    在Java中的浪費喚醒:真實性或神話? 在Java同步中偽裝喚醒的概念已經是討論的主題。儘管存在這種行為的潛力,但問題仍然存在:它們實際上是在實踐中發生的嗎? Linux的喚醒機制根據Wikipedia關於偽造喚醒的文章,linux實現了pthread_cond_wait()功能的Linux實現,...
    程式設計 發佈於2025-07-17
  • 在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8 MySQL表中正確將Latin1字符轉換為UTF8的方法
    在UTF8表中將latin1字符轉換為utf8 ,您遇到了一個問題,其中含義的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致電。為了解決此問題,您正在嘗試使用“ mb_convert_encoding”和“ iconv”轉換受...
    程式設計 發佈於2025-07-17

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

Copyright© 2022 湘ICP备2022001581号-3