Python基礎---字典詳細解釋

来源:https://www.cnblogs.com/Mifen2952277346/archive/2018/11/28/10035500.html
-Advertisement-
Play Games

好記憶不如爛筆頭: ...


好記憶不如爛筆頭:

#__author:Mifen
#date: 2018/11/28

#不可變類型:整型,字元串,浮點型(不等於小數,但包括小數),元組(只讀,不可修改)
#可變類型:列表,字典(鍵必須是不可變類型)

#字典兩大特點:鍵唯一,無序

# #創建字典:
# dict_0 = {} # 創建一個空字典
# print(dict_0)
#print(type(dict_0))

# dict_1 = {'name':'Mifen','age':'90'}
# dict_1['hobby'] = 'play games' #如果字典里不存在這個鍵(hobby)則添加進去,否則修改值
# print(dict_1)
# dict_1['name'] = 'Alen' # 存在相同鍵值,則替換》》》Mifen 替換為 Alen
# print(dict_1)

#1.增
# dict_2 = {'name':'Mifen','age':'90'}
# dict_2.setdefault('age','30') #setdefault:如果age這個鍵存在,不做任何修改,
#                             # 返回存在的值,沒有則添加進去,並返回添加進去的值
# print(dict_2)
# value = dict_2.setdefault('age','30')
# print(value)
# value_2 = dict_2.setdefault('speciality','code')
# print(dict_2)
# print(value_2)

#2.查
# dict_3 = {'name':'Mifen','age':'90'}
# print(dict_3['name']) #通過鍵名查值
# print(dict_3.keys())
#
# key_list = list( dict_3.keys() ) #keys表示拿到字典的全部鍵名,list為把數據轉換成列表
# value_list = list( dict_3.values() ) #value 表示拿到字典的全部 的值
# print(' all key %s   all value %s  ' % (key_list,value_list))
# print(type(dict_3.keys())) #不轉為list時 為 dict_keys 類型

#3.改
# list_1 = [1,2,3,4]
# list_1[0] = 5  #列表:通過 '索引值'  拿到列表的值進行修改
# print(list_1)

# dict_4 = {'name':'Mifen','age':'90'}
# dict_4['age'] = 66 #字典: 類似於列表,字典通過  ‘鍵’ 拿到數據進行修改
# print(dict_4)

# list_2 = [1,2,3,4]
# list_3 = [9,8,9,4,9]
# print(list_2 + list_3) #原始的連接操作(+)則不然,它會返回一個全新的列表,不會對列表進行任何修改
# list_2.extend(list_3) # extend 方法修改了被擴展的列表,可以在列表的末尾一次性追加另一個序列中的多個值。
# print(list_2)
#
# dict_5 = {'name':'Mifen','age':'90'}
# dict_6 = {'name':'Alen','hobby':'read'}
# dict_5.update(dict_6)  #通過更新字典進行修改,類似於extend操作,如果鍵值相同會進行覆蓋,不同則添加進字典
# print(dict_5) #dict_5 的name改變了
# print(dict_6)


#4.刪
# dict_7 = {'name':'Alen','hobby':'read'}
# del dict_7['name'] # 把字典中的這個鍵和值刪除
# print(dict_7)
# del dict_7 #整個字典刪除
# print(dict_7) #會報錯 name 'dict_7' is not defined
#
# dict_7.clear() #直接把字典清空 ,留下一個空字典
# print(dict_7)

# dict_8 = {'name':'Alen','hobby':'read','height':'168'}
# return_value = dict_8.pop('name') #更列表差不多一樣,但pop(必須由key),應為字典無序,把name刪掉,返回刪除的值
# print(return_value)
# print(dict_8)

# dict_9 = {'name':'Alen','hobby':'read','height':'168','hair':'black'}
# a = dict_9.popitem() #隨機刪除一個值 ,字典是 ’無序‘ 的,和pop一樣有返回(元組方式返回)
# print(a)
# print(dict_9)

#5.其它操作及方法

# dict_10  = dict.fromkeys(['p1','p2','p3','p4','p5'],'test') #生成一個字典
# print(dict_10) #{'p1': 'test', 'p2': 'test', 'p3': 'test', 'p4': 'test', 'p5': 'test'}

# dict_11  = dict.fromkeys(['p1','p2','p3','p4','p5'],['test1','test2'])
# print(dict_11) #{'p1': ['test1', 'test2'], 'p2': ['test1', 'test2'], 'p3': ['test1', 'test2'], 'p4': ['test1', 'test2'], 'p5': ['test1', 'test2']}

#6.字典嵌套

# av_catalog = {
#     "歐美":{
#         "www.youporn.com": ["很多免費的,世界最大的","質量一般"],
#         "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"],
#         "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"],
#         "x-art.com":["質量很高,真的很高","全部收費,屌比請繞過"]
#     },
#     "日韓":{
#         "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","聽說是收費的"]
#     },
#     "大陸":{
#         "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"]
#     }
# }
#
# #要求:把質量一般改為高清無碼
# av_catalog["歐美"]["www.youporn.com"][1] += "高清無碼" #多級菜單的訪問
#
# av_catalog["大陸"]["1024"][1] += ",可以用爬蟲爬下來"  #進行字元串的拼接
#
# print(av_catalog["大陸"]["1024"]) #ouput ['全部免費,真好,好人一生平安', '伺服器在國外,慢,可以用爬蟲爬下來']
#

#字典排列
# x = [4, 6, 2, 1, 7, 9]
# x.sort(reverse= True)#x.sort(reverse=True)  #reverse倒過來
# print(x) #[9, 7, 6, 4, 2, 1]
# 
# dict_12= {'name':'Alen','hobby':'read','height':'168'}
# print(sorted(dict_12)) # sorted(dict) : 返回一個有序的包含字典所有 'key的列表',並不是返回字典(無序)
# print(sorted(dict_12.values())) #['168', 'Alen', 'read']
# print(sorted(dict_12.items())) #[('height', '168'), ('hobby', 'read'), ('name', 'Alen')] 按key排位

#遍歷字典三種方法;推薦第一種
# dict_12= {'name':'Alen','hobby':'read','height':'168'}
# for i in dict_12:  #返回key
#     print(i,dict_12[i])
#
# for items in dict_12.items(): #返回元組
#     print(items)
#
# for keys,values in dict_12.items():
#     print(keys,values)
# for i in dict_12.values():
#     print(i)
  

  


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

-Advertisement-
Play Games
更多相關文章
  • 一.結構型設計模式 門面模式與單例模式,工廠模式不同,它是一種結構型模式。 結構型模式描述如何將對象和類組合成更大的結構 結構型模式是一種能夠簡化設計工作的模式,它能找出更簡單的方法來認識或表示實體之間的關係。 結構型模式是類和對象模式的綜合體。類模式通過繼承來描述抽象,從而提供更有用的程式介面,而 ...
  • 最近工作中慢慢開始用python協程相關的東西,所以用到了一些相關模塊,如aiohttp, aiomysql, aioredis等,用的過程中也碰到的很多問題,這裡整理了一次記憶體泄漏的問題 通常我們寫python程式的時候也很少關註記憶體這個問題(當然可能我的能力還有待提升),可能寫c和c++的朋友會 ...
  • 今天這篇博文來探索一下laravel的路由。在第一篇講laravel入口文件的博文里,我們就提到過laravel的路由是在application對象的初始化階段,通過provider來載入的。這個路由服務提供者註冊於vendor\laravel\framework\src\Illuminate\Fo ...
  • 本文只關註Go text/template的底層結構,帶上了很詳細的圖片以及示例幫助理解,有些地方也附帶上了源碼進行解釋。有了本文的解釋,對於Go template的語法以及html/template的用法,一切都很簡單。 入門示例 上面定義了一個Person結構,有兩個 大寫字母開頭 (意味著這倆 ...
  • 最近在複習Java基礎,第一課就是JDK的安裝配置以及環境變數的配置,不多廢話,直接開始吧 (1)去Oracle官方網站下載JDK 1.8 Java的歷史想必大家也清楚,Sun公司開發的一門面向對象的編程語言,後來Sun公司被Oracle收購,於是Java也理所當然的成了Oracle的 JDK 1. ...
  • Zipkin是什麼Zipkin分散式跟蹤系統;它可以幫助收集時間數據,解決在microservice架構下的延遲問題;它管理這些數據的收集和查找;Zipkin的設計是基於谷歌的Google Dapper論文。每個應用程式向Zipkin報告定時數據,Zipkin UI呈現了一個依賴圖表來展示多少跟蹤請 ...
  • 1. Mapping(映射) Mapping 是定義文檔及其包含的欄位是如何存儲和索引的過程 例如,我們用映射來定義: 哪些字元串欄位應該被當做全文欄位 哪些欄位包含數字、日期或地理位置 是否應該將文檔中所有欄位的值索引到catch-all欄位中 1.1. Mapping Type(映射類型) 每個 ...
  • Elastic-Job是一個分散式調度解決方案,由兩個相互獨立的子項目Elastic-Job-Lite和Elastic-Job-Cloud組成。 Elastic-Job-Lite定位為輕量級無中心化解決方案,使用jar包的形式提供分散式任務的協調服務。 官方主頁 CSDN- elastic job ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...