python_0基礎開始_day05

来源:https://www.cnblogs.com/linglichong/archive/2019/08/07/11317966.html
-Advertisement-
Play Games

第五節 一、字典 python的數據結構之一 字典 —— dict 定義:dic = {"key":"dajjlad"} 作用:存儲數據,大量,將數據和數據起到關聯作用 字典是可變的數據類型,無序的 所有的操作都通過鍵 # 鍵:必須是不可變的數據類型(可哈希),且唯一 不可哈希就是可變數據類型# 值 ...


第五節

一、字典

  • python的數據結構之一

  • 字典 —— dict

  • 定義:dic = {"key":"dajjlad"}

  • 作用:存儲數據,大量,將數據和數據起到關聯作用

  • 字典是可變的數據類型,無序的

  • 所有的操作都通過鍵

    # 鍵:必須是不可變的數據類型(可哈希),且唯一   不可哈希就是可變數據類型
    # 值:任意
    dic = {"10":"蘋果手機", #   鍵 值 對
          "11":"蘋果手機",
          "15”:"小米手機",
          "15":"華為手機",
          (1,):"oppo手機",
          }

1.1字典的增:

  1. 暴力添加

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
    dic["二狗"] = "我的太陽" # 添加的是一個鍵值對
    dic["騰格爾"] = ["來自草原的沙塵暴","音樂界的泥石流"]
    # 新的鍵如果在字典中沒有,那會添加到最後字典的後面;
    # 如果有,那將新值替換舊值
  2. 有則不添加,無則添加

    dict.setdefaullt(鍵,值)

    dic = {'a': '上天', 'b': ['入地', '通幽'], 'c': '吃飯', 'd': '救苦救難'}
    dic.setdefault("b",["沿著","江山","起起","伏"]) # 鍵存在,所以不添加
    dic.setdefault("武器",["刀","槍","棍","棒","斧"])# 鍵為新,在最後一個鍵值對後面添加
    # setdefault 添加分為2步:
    # 1,先查看鍵是否在字典
    # 2,不存在的時候進行添加

1.2字典的刪除:

  1. pop(鍵) —— 通過鍵刪除,具有返 回值

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic.pop("1") # 刪除了 "1":"上樹" 這個鍵值對
  2. clear() —— 清空

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic.clear() # 清空該字典,保留空字典
  3. del —— 刪除

    del dict —— 刪除的是容器

    del dict["鍵"] —— 通過鍵刪除

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    del dic # 刪除的是整個字典
    del dic["3"] # 只刪除 "3":"開黑" 這個鍵值對

1.3字典的改

  1. 字典名[鍵] = 值

    # 和字典的暴力添加一樣
    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic["2"] = "星宿老仙,法力無邊" # 直接定位鍵,修改值
  2. 字典名.update(新字典)——在最後一個鍵值對後面,迭代添加

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    dic1 = {"天山派":"星宿老仙,法力無邊","少林":"龍抓手"}
    dic.update(dic1)
    print(dic) #{'1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團', '天山派': '星宿老仙,法力無邊', '少林': '龍抓手'}
    dic1.update(dic)
    print(dic1)#{'天山派': '星宿老仙,法力無邊', '少林': '龍抓手', '1': '上樹', '2': '遛狗', '3': '開黑', '4': '打團'}

1.4字典的查

  1. 字典名.get(鍵,找不到的換回None)

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    print(dic.get("5")) # 返回 None
    print(dic.get("5","找不到啊")) # 返回 找不到啊
    print(dic.get("2")) # 返回 遛狗
    
  2. 字典名.setdefault(鍵)

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    print(dic.setdefault("3")) # 返回開黑
    print(dic.setdefault("77")) # 返回 None
    print(dic["4"]) # 也可直接查找,沒有就是報錯
    
    • 字典名.keys() ——所有的鍵,獲取到的是一個高仿列表

    • 字典名.values() —— 所有的值,獲取到的是一個高仿列表

    • intems() —— 鍵值

      • 註意:高仿列表支持迭代,不支持索引

      dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
      print(dic.keys()) # 所有的鍵,獲取到的是一個高仿列表
      print(dic.valuse()) # 所有的值,獲取到的是一個高仿列表
      

       

  3. for迴圈,返回的是字典的鍵

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    for i in dic:
        print(i) # 迴圈出的是字典的鍵
    

1.5解構

  • 在字典中返回的是鍵

a,b = 1,2
print(a,b)
# 結果:
# 1 2

a,b = ('你好','世界')
print(a,b)
# 結果:
# 你好 世界

a,b = ['你好','大飛哥']
print(a,b)
# 結果:
# 你好 大飛哥

a,b = {'汪峰':'北京北京','王菲':'天後'}
print(a,b)
# 結果:
# 汪峰 王菲
  • 解構在字典中的作用:

    dic = {"1":"上樹","2":"遛狗","3":"開黑","4":"打團"}
    for k,v in dic.items():
        print('這是鍵',k)
        print('這是值',v)
    """
    結果:
    這是鍵 1
    這是值 上樹
    這是鍵 2
    這是值 遛狗
    這是鍵 3
    這是值 開黑
    這是鍵 4
    這是值 打團
    """
    
    • *__是一個萬能值,萬能接受

      lis = [1,2,3,4,5,6,7,8]# 取出來1,2,5
      a,b,c,d,e,*__ = lis
      print(a,b,e) 
      # 結果 1 2 5
      

1.6字典的嵌套

 

dic = {11:{1:{"秦":"嬴政","秦二世","李斯","商鞅","章邯","蒙恬"},         
                2:{"漢":"劉邦","韓信","衛青","霍去病"}
                3:{"三國":"魏","蜀","吳"}},    
       22:{1:{"歌唱家":{"劉歡":["我和你","彎彎的月亮"]}},         
            2:{"鄧紫棋":["泡沫","喜歡你","天堂","光年之外"]},
            3:{"騰格爾":["隱形的翅膀","卡路里","日不落"]}},    
       33:{1:{"蔡徐坤":{"唱":["雞你太美"],"跳":["鋼管舞"],"rap":["大碗面"],"籃球":("NBA形象大使")}},  
            2:{"JJ":{"行走的CD":["江南","曹操","背對背擁抱","小酒窩","不潮不花錢"]}},         
            3:{"Jay":{"周董":["菊花台","雙節棍","霍元甲"]}}},    
       44:{1:{"韋小寶":{"雙兒":"刺客","建寧":{"公主":{"吳三桂":"熊"}},"龍兒":{"教主老婆":"教主"}}}}
      }
print(dic[201][1]["韋小寶"]["建寧"]["公主"]["吳三桂"])# 熊
print(dic[103][1]["蔡徐坤"]["跳"][0])# 鋼管舞
print(dic[102][2]["鄧紫棋"][1]) # 黑風雷




後續還會持續更新,從入門到放棄  ^.^。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ```Python import requests import pyquery def crawl_page(url: str) -> None: headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleW... ...
  • 桌面程式在運行過程中,時常需要在主界面之上彈出小窗,把某種消息告知用戶,以便用戶及時知曉並對症處理。這類小視窗通常稱作對話框,依據消息交互的過程,可將對話框分為三類:消息對話框、確認對話框、輸入對話框,分別介紹如下: 1、消息對話框這類對話框僅僅向用戶展示一段文本,告訴用戶發生了什麼事情。它起到了提 ...
  • 使用示例: 提取一條記錄: 提取多條記錄: 設置sql語句參數: 插入一條記錄: 增刪改的操作類似,註意增刪改都需要conn.commit()才會提交到資料庫。 另一種設置參數的方式: 批量操作: ...
  • glob模塊 提供了一個函數,用於匹配符合要求的文件: re模塊 字元串正則匹配 datetime模塊 日期時間 格式化輸出也可以這樣用: 數據壓縮 支持數據打包、壓縮的模塊:zlib,gzip,bz2,zipfile,以及 tarfile。 壓縮數據: 壓縮文件: 解壓文件: ...
  • 1、java gc 2、java class的載入過程 3、java hashmap、 為什麼用紅黑樹、紅黑樹鄰接點為啥是8 。 4、拜占庭問題 5、一致性哈希 6、如何控制負載均衡。 7、http碼 302 403 。 8、https 加密過程。 9、操作系統虛存實現原理,交換,覆蓋區別。 10、 ...
  • 出自:http://1t.click/7TJ 目錄: 案例背景引入 特殊的電商大促場景 抗住大促的瞬時壓力需要幾台機器? 大促高峰期訂單系統的記憶體使用模型估算 記憶體到底該如何分配? 新生代垃圾回收優化之一:Survivor空間夠不夠 新生代對象躲過多少次垃圾回收後進入老年代? 多大的對象直接進入老年 ...
  • 類與類的關係 依賴關係 組合關係 組合: 將一個類的對象封裝成另一個類的對象的屬性. 繼承關係 繼承的優點: 1,增加了類的耦合性(耦合性不宜多,宜精)。 2,減少了重覆代碼。 3,使得代碼更加規範化,合理化 繼承:可以分 單繼承,多繼承 。 單繼承 第一種:直接執行 第二種:子類和父類都有相同功能 ...
  • 什麼是MVC MVC : 模型、視圖、控制器 , 是一種軟體設計規範,說明不是設計模式; 本質:將業務邏輯 , 數據 , 顯示 分離的方式來編寫代碼; 前後端分離; Model:數據模型,提供要展示的數據,一般我們都會把這兩個分離開來 , 數據Dao,服務層Service。 View :負責進行數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...