1. 程式人生 > >字典dict基本概念、字典常用操作、字典的元素訪問及遍歷

字典dict基本概念、字典常用操作、字典的元素訪問及遍歷

字典dict基本概念

字典是另一種可變容器模型,且可儲存任意型別物件。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 

鍵必須是唯一的,但值則不必。
# 什麼是對映?什麼是字典dict?

name = ['大頭兒子','小頭爸爸','隔壁老王']
age = [6,35,37]
# 首先雖然序列是有順序的,但還是不能直接把名字和年齡關聯起來,這裡只是順序對上,且並沒有一對一的關係

dic = {'大頭兒子':6, '小頭爸爸': 35, '隔壁老王':37}
print(dic,type(dic))
# 用{}來表示,按照key:value來表示字典中的元素,其中key是鍵,value是值,key-value也就是鍵值對
# 這裡dic就是一個字典型別的變數 dic = [{'name':'Tom', 'age':18},{'name':'Jack', 'age':19},{'name':'Alex', "age":17}] print(dic) # 一個以字典為元素的列表,有沒有覺得鍵值對很像資料中的欄位和欄位值?
# 字典的特點

dic = {'a':1,'b':2,'c':3}
# 鍵值對,一定共同出現,不能只有一個

dic = {'a':1,'a':2}
print(dic)
# 不允許同一個鍵出現兩次:建立時如果同一個鍵被賦值兩次,後一個值會被記住

dic = {'var1':1, 'var2'
:'hello', 'var3':[1,2,3], 'var4':{'a':1,'b':2}} # key必須是字串,value則可以是任意物件:數值,字串,序列,字典 print(dic) # 字典是一個無序集合,序列由於沒有key來做對應,所以以順序來對應值 # 序列有順序,字典沒有! dic['var5'] = '新增一個值' # 任意新增元素 dic['var4'] = '任意修改其中一個值' # 任意修改元素 del dic['var1'] # 任意刪除元素 print(dic) dic.clear() # 清空詞典所有條目 print(dic) del dic # 刪除詞典
#print(dic)
# 申明一個字典

dic = {'a':1,'b':2}
# 最簡單直接的方式,手動書寫申明一個字典變數,注意是:不是=

dic = dict(m = 10 ,n = 'aa', h = [1,2,3])
print(dic)
# dict()函式

lst1=[("a","fff"),("b","ggg")]
lst2=[["c",1],["d",2]]
lst3=(("e",[1,2]),("f",[3,4]))
dic1 = dict(lst1)
dic2 = dict(lst2)
dic3 = dict(lst3)
print(dic1,dic2,dic3)
# dict()由序列生成一個字典,巢狀序列,可以是list或者tuple

keys = ["a", "b", "c"]
dic1 = dict.fromkeys(keys)
dic2 = dict.fromkeys(keys, 'hello')
print(dic1,dic2)
# 只有key,直接生成一個字典

字典常用操作

字典內建函式&方法
# 字典常用操作

dic1 = {"a":1, "b":2}
dic2 = {"c":3, "d":4}
dic1.update(dic2)
print(dic1,dic2)
# dict.update()方法:更新/合併一個字典,把第二個字典合併到第一個字典,改變了第一個字典

a = {'m':1 , 'n':2 , 'p':3}
b = a
a.update({'q':4})
print(a,b)
# 和序列的原理一樣,a和b指向同一個字典,所以會一起更新

a = {'m':1 , 'n':2 , 'p':3}
b = a.copy()
a.update({'q':4})
print(a,b)
# 通過.copy()方法,複製一個新的字典

print(len(a))
# 檢視字典元素個數

print('m' in a)
print(1 in a)
# in / not in :判斷是否包含,這裡的判斷物件是key

字典的元素訪問及遍歷

如何讀取字典?
# 字典的元素訪問

dic = {'a':1, "b":2, "c":3}
print(dic['a'])
#print(dic[1])  # 不能用序列的索引方式
# 字典裡面也就同樣的意思,但字典沒有順序,以key來作為指向,所以指向的key必須存在

poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
print(poi['information']['address'])
# 對於巢狀字典,輸出巢狀內容,通過重複指向來輸出

print(poi.get('name'))
print(poi.get('type',print('nothing')))
# .get(key)方法:直接檢視key的value,如果沒有相應key則返回None,新增print引數可以多返回一個值

print(poi.keys(),type(poi.keys()))
print(list(poi.keys()))
# .keys()方法:輸出字典所有key,注意這裡的輸出內容格式是檢視,可以用list()得到key的列表,類似range()

print(poi.values(),type(poi.values()))
print(list(poi.values()))
# .values()方法:輸出字典所有values,原理同.keys()方法

print(poi.items(),type(poi.items()))
print(list(poi.items()))
# .items()方法:輸出字典所有items(元素),原理同.keys()方法
# 字典的元素遍歷

poi = {'name':'shop', 'city':'shanghai', 'information':{'address':'somewhere', 'num':66663333}}
for key in poi.keys():
    print(key)
print('-------')

for value in poi.values():
    print(value)
print('-------')

for (k,v) in poi.items():
    print('key為 %s, value為 %s' %(k,v))
print('-------')  
# for函式遍歷

相關推薦

字典dict基本概念字典常用操作字典元素訪問

字典dict基本概念 字典是另一種可變容器模型,且可儲存任意型別物件。 字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中

圖的基本概念表示方法以及兩種搜尋方式——深度優先和廣度優先

原先的知識沒好好學,導致現在很多都忘了,或者說以前就沒弄懂過。現在重新看一遍,收穫良多,不管怎樣先寫這篇基礎的,當做筆記。 圖的定義:是由頂點的有窮非空集合和頂點之間的邊的集合組成的,通常表示為 G(V,E)。其中G表示一個圖,V是圖的頂點的集合,E是圖的邊的集合。 有跟多

Python 資料型別--字典(dict)基本操作

1、定義 person={'name':'zyb','addr':'hainan'} person=dict({'name':'zyb','addr':'hainan'}) 2、查詢 通過字典中的key,查詢對應的資料 person['name'] person.get('

Python學習筆記五:字符串常用操作字典,三級菜單實例

rip .get isalnum 變量名 cde tro 分割 字母 isdigit 字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大寫:a_str.capitalize() 統計字符串個數:a_str.count(“x”)

.Net轉Java.07.IDEA和VS常用操作快捷鍵對照表

聲明 重構 推導 order div span left post nbsp 功能 IDEA 2017.1 快捷鍵 Visual Studio 2015 快捷鍵 文檔 格式化整個文檔 Ctrl+Alt+L Ctrl+E,D

R: 常用操作文件管理函數

當前 註釋 left 查看當前目錄 ctrl str file reat 清除 # 常用操作############################################################################ #清除所有變量:rm(lis

Virtio 基本概念和設備操作

nali out 為我 written 字節 1.5 提醒 eof 設備配置 轉載自https://www.ibm.com/developerworks/cn/linux/1402_caobb_virtio/index.html Linux Kernel 支持很多 Hype

Perl文件目錄常用操作

定義 沒有 r語 參數 虛擬文件系統 sys dir perl log 註意,這些操作的對象是文件名(相對路徑/絕對路徑),而非文件/目錄句柄,句柄只是perl和文件系統中文件的關聯通道,而非實體對象。 創建文件 在unix類操作系統中有一個touch命令可以非常方便的創建

開啟運維之路之第 7 篇——RedisDesktopManager使用Keys通用操作Java程式碼操作基本的Redis

RedisDesktopManager下載地址:Redis桌面管理工具官方下載地址 安裝好,直接雙擊開啟。 說明:我本機的 IP 由於使用公司的 IP ,經常會變動,但不影響連線 Linux 虛擬機器。 現在發現個問題,無法連線到 Redis 。 解決過程: ①Redi

PHP設計模式:類自動載入PSR-0規範鏈式操作11種面向物件設計模式實現和使用OOP的基本原則和自動載入配置

一、類自動載入      SPL函式 (standard php librarys)      類自動載入,儘管 __autoload() 函式也能自動載入類和介面,但更建議使用&nbs

redis常用操作 redis操作鍵值 redis安全設定

一:redis常用操作 Redis常用操作 (string, list)set key1 aminglinuxget key1set key1 aming//第二次賦值會覆蓋setnx key2 aaa //返回1 如果key2不存在直接建立keysetnx key2 bbb //返回0,如果ke

redis常用操作 redis操作鍵值 redis安全設置

批量 打印 1-1 sele 設置 glin 取消 and 第一個元素 一:redis常用操作 Redis常用操作?(string, list)set key1 aminglinuxget key1set key1 aming//第二次賦值會覆蓋setnx key2 aaa

字典的增刪改查和其他操作, 以及字典的巢狀

1.字典   字典是以key:value的形式來儲存資料 用{}表示. 儲存的是key:value   2. 字典的增刪改查(重點)             ① 新增     &nbs

zookeeper概念應用場景資料組織叢集搭建客戶端操作Java客戶端curator

  一、zookeeper簡介      1.1 zookeeper簡介      Apache的很多專案以動物來命令,比如Hadoop(大象)、Hive(小蜜蜂)、Pig(豬豬),這些專案都是hadoop生態系統的成員。Hadoop生態系統是為了解決大資料儲存、大資料計算和大資料資料分析的,解決大

MySql:SQL常用操作函式事物和索引

MySQL是一個關係型資料庫管理系統,在開始學習MySQL資料庫前,讓我們先了解下RDBMS的一些術語: 資料庫: 資料庫是一些關聯表的集合。 資料表: 表是資料的矩陣,在一個數據庫中的表看起來像一個簡單的電子表格。 列:一列(資料元素) 包含了相同的資料,例如郵政編碼

【深度學習】MXNet基本資料結構NDArray常用操作

文章目錄 概述 示例 概述 在MXNet深度學習框架中,NDArray是儲存和變換資料的主要工具,和NumPy中的ndarray有異曲同工之妙。 在下面的示例中,主要展示了: NDarray的建立;

(一)Linux 常用操作命令(持續學習更新ing……)

一、建立普通使用者 $ useradd zhangsan //建立使用者 $ passwd zhangsan //初始化密碼 $ userdel zhangsan //刪除使用者 $ rm -rf zhangsan //刪除使用者張三所在目錄 $ usermod

025容器常用操作(2019-01-18 周五)

pbo art man stat com style 自動重啟 cli run 參考https://www.cnblogs.com/CloudMan6/p/6952115.html 容器常用操作命令,很多命令在前面鏡像章節已經使用過,這裏不再演示 docke

SQL優化:基本概念(索引調優統計資訊查詢調整資源調控)

 1、索引碎片 /*======================================================= 注意:所有的引數都是以當前資料庫來計算的,所以必須指定完全限定。 模式影響如何收集碎片資料: LIMITED:掃描堆所有的頁,對於索引,

序列通用操作列表list常用操作文字序列str常用操作

序列通用操作 序列通用操作 序列分類:可變序列list,不可變序列tuple、str # 判斷值是否屬於序列 lst = [1,2,3,4,5,6] a,b = 1,10 print(a