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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...