天天看點

python建立字典型資料_Python 資料類型之字典 dict

今天番茄加速就來說說Python資料類型之字典dict

python建立字典型資料_Python 資料類型之字典 dict

# 字典是一種可變容器類型,可存儲任意類型對象

# 字典以鍵值對存儲資料,key-value形式,鍵值之間使用冒号:分隔,每個鍵值中間用逗号,分隔

# 字典包含在大括号,花括号{}中

# python中鍵必須是不可變的,但值可取任何資料類型

# 元組可以作為 dict 的 key,但清單不能作為元組的 key,dict 要求 key 必須是不可變類型,但清單是可變類型

dic = {"key1":"value1","key2":"value2"}

print(dic)

print(type(dic))

# 建立字典

# 建立一個空的字典

b = {}

print(b)

print(type(b))

# 直接指派建立

a = {"name":"Tom","age":19,"area":"shanghai",123:456}

print(a)

print(type(a))

# 通過關鍵字dict和關鍵字參數建立

c = dict(aa="bb",bb="你好",cc="acc")

print(c)

# 通過關鍵字dict和二進制組清單建立

list = [('name',"Tom"),('age',20),('area', "shanghai")]

d = dict(list)

print(d)

# 通過字典推導式建立

f = {i:2+i for i in range(1,5)}

print(f)

# 通過關鍵字dict和zip結合建立

e = dict(zip('ab', [1, 2]))

print(e)

# 通過dict.fromkeys()建立

# 這個通常用來初始化字典, 設定value的預設值

g = dict.fromkeys(range(5), 'v')

print(g)

# 字典中鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一

abc = {"ab":"11","ac":"22","ad":"33","ab":"55"}

print(abc)

print(type(abc))

# 字典的通路

# 通路字典中的資料:字典是鍵值對,通路的時候根據key進行通路操作

# a[key]

# a.get(key)

# 使用方括号通路字典,key必須是存在,如果不存在,程式會報異常

print(a["name"])

# 使用get通路,key不存在,會傳回None,空的意思

print(a.get("age"))

print(a.get("abcd"))

# 字典的常用操作

# 字典資料修改

# 字典資料删除

# 字典資料增加

# 字典鍵的特性:不可重複,不可變

# 添加一個字典:修改 ,

# 如果key不存在,這就是一個添加操作,如果key存在,這就是一個修改操作

a["msg"] = "你好"

print(a)

a["age"] = 29

print(a)

# 删除

del a["age"]

print(a)

# 清單,不可插入字典,可變

# a1 = [1,2,3]

# a[a1] = "abc"

# print(a)

# 元組

a2 = (1,2,3)

a[a2] = "abc"

print(a)

# 如果要判斷字典是否包含指定的 key,則可以使用 in 或 not in 運算符。字典中in 或 not in 運算符都是基于 key

來判斷的,字典的 key 就相當于它的索引

# 判斷字典 a 中是否包含名為'age'的key

print("age" in a)

# 輸出True,False

# 判斷 a 中是否包含名為'school'的key

print('school' in a)

# 判斷'school' key不再字典 a 中

print('school' not in a)

# 清單的索引總是從 0 開始、連續增大的;但字典的索引即使是整數類型,也不需要從 0

開始,而且不需要連續。是以,清單不允許對不存在的索引指派,但字典則允許直接對不存在的 key 指派,這樣就會為字典增加一個 key-value 對

# 字典的常用方法

# keys 擷取所有的key

# values 擷取所有的值

# pop 根據鍵彈出

# popitem 彈出最後一組鍵值對

# update 更新資料

# clear 清除資料

print(a.keys())

print(a.values())

# 擷取所有的鍵值對

print(a.items())

# pop彈出的是字典中存在的key

print(a.pop("name"))

# popitem() 方法用于随機彈出字典中的一個 key-value 對,但其實是彈出最後一個鍵值對

print(a.popitem())

print(a)

# 更新一個鍵值對

a.update(msg="世界")

print(a)

# 清空字典

print(a.clear())

# setdefault()方法:根據 key來擷取對應value的值;

# setdefault() 方法總能傳回指定 key 對應的value;如果該 key-value對存在,則直接傳回該key對應的

value;如果該key-value 對不存在,則先為該 key設定預設的value,然後再傳回該 key對應的value。

# 設定預設值,該key在dict中不存在,新增key-value對

a = {"name":"Tom","age":19,"area":"shanghai",123:456}

print(a.setdefault('school', "大學")) # 9.2

print(a)

# 設定預設值,該key在dict中存在,不會修改dict内容

print(a.setdefault('name', "Lida")) # 8.5

print(a)