1.什麼是字典
字典是以key:value的形式來儲存資料,用{}表示. 儲存的是key:value
坑: 字典儲存資料的時候是用的hash值來儲存. 演算法不能變(python的)
# 資料必須是不可變的(可雜湊). 字典的key必須是可雜湊的(不可變).
dic =
print(dic['jay']) # 周杰倫
dic['jay'] = "麻花藤" #字典的key是不變的,可以通過key來帶出value的資訊
2.字典的增刪改查
1.增加,新增:
dic[新key] = 元素
dic =
dic["日本"] = "東京審判" # 新key表示新增
dic['南韓'] = "釜山行
dic["日本"] = "鬼片"
setdefault()(難點) 有新增的功能,如果key是存在的,不新增, setdefault("","")
dic =
dic.setdefault("美國", "三傻大鬧波里活")
print(dic)
2.刪除
pop(key) 主要要記得,刪除key後,同value一起刪除掉
dic =
dic.pop("郭德綱")
print(dic) #
popitem() 隨機刪除一項,在python早期的版本,字典是無序的
dic =
dic.popitem() # 隨機刪除一項. 在python早期版本 字典是無序的.
print(dic) #
clear() 清空字典中的所有內容
del dic["key"] 跟pop的區別在於使用的語法:pop(key)
dic =
del dic["李安"]
print(dic) #
3.修改
dic[老key] = 值
dic =
dic['河南'] = "燴麵" # 老key = 值
print(dic)
update() 更新字典
dic =
dic1 =
dic.update(dic1) # 把dic1中的內容更新到dic中. 如果key重名. 則修改替換. 如果不存 在key, 則新增.
print(dic)
print(dic1)
4.查詢
dic[key]
dic1 = # 直接使用key就可以拿到value
print(dic1["趙四四"]) # keyerror: '趙四四' key不存在
get(key,值)
print(dic1.get("劉能能")) # none 當key不存在返回none
print(dic1.get("劉能能", "沒有這個人")) # 當key不存在. 返回第二個引數. 預設第二個引數是none
setdefault("key","value") 第乙個功能是天加(當key不存在的時候). 第二個功能是查詢(根據你給的key查詢). 如果key不存在,先執行新增的操作,在使用key把對應的value查詢出來
3.字典的相關操作
1. keys() 獲取到所有的鍵
dic =
print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不⽤管它是什麼.當 成list來⽤就⾏
for key in dic.keys():
print(key)
2. values() 獲取到所有的值
dic =
for value in dic.values():
print(value)
3. items() 拿到所有的鍵值對
dic =
print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科⽐')]) 這個東⻄也是list. 只不過list中裝的是tuple for key, value in dic.items(): # ?? 這個是解構
print(key, value)
4..字典的巢狀
wf = ,
"zhuli":
},"zhuli":,
"children":[, ]
}wf['children'][1]["age"] = 2 #在children裡面新建字典
print(wf)
# print(wf['zhuli']['name']) #輸出名字
print(wf)
# 汪峰老婆替身的名字
print(wf['wife']['tishen']['name'])
# 汪峰老婆的第二個愛好
print(wf['wife']['hobby'][1])
# 汪峰助理的第三個愛好
print(wf['zhuli']['hobby'][2])
# 汪峰的助理+10歲
wf['zhuli']['age'] = wf['zhuli']['age'] + 10
# 汪峰的老婆新增乙個愛好("導戲")
# 刪除汪峰助理的"抽菸"愛好
wf["zhuli"]["hobby"].remove("抽菸")
print(wf)
5.集合(不重要).去重複 唯一能用到的點,就是去重複
s = # 不重複的
print(s) #
集合和字典,是沒有索引和切片的
集合中的元素是不可重複的.必須是可雜湊的(不可變),字典中的key
lst = ["麻將", "牌九", "骰子", "撲克", "骰子", "撲克", "撲克", "撲克"]
# 把列表轉化成集合 x 轉化成y型別 y()
s = set(lst)
print(s)
# 把集合變回列表
# lst = list(s)
print(lst) # 順序是亂的
空集合:set()
空元組: tuple()
空列表: list()
非空集合:
新增:add 新增 #需要記住的
s =
s.add("劉嘉玲")
print(s)
update 迭代更新
s.update() # 迭代更新
print(s)
刪除:pop() 隨機彈乙個,隨機刪除
ret = s.pop() # 隨機刪除乙個
print(s)
print(ret)
remove() 指定刪除
s.remove("羅納爾多")
print(s)
修改 : 只能先刪除在新增
s =
把羅納爾多修改成梅西
s.remove("羅納爾多")
s.add("梅西")
print(s)
# 迭代
# for el in s:
# print(el)
# s1 =
# s2 =
# 交集
# print(s1 & s2)
# print(s1.intersection(s2))
# 並集
# print(s1 | s2)
# print(s1.union(s2))
# # 差集
# print(s1 - s2) # s1中特有的內容
# print(s1.difference(s2))
## # 反交集
# print(s1 ^ s2) # 兩個集合中特有的內容
# print(s1.symmetric_difference(s2))
# 集合本身是可變的資料型別 . 不可雜湊
# 集合套集合->不能互相巢狀的
# 集合中的元素必須可雜湊(不可變的)
# s =
# 如果非要集合套集合
# s = frozenset() # 不可變的資料型別(集合)
# for el in s:
# print(el)
Task05 字典 集合和序列
可變型別與不可變型別 序列是以連續的整數為索引,與此不同的是,字典以 關鍵字 為索引,關鍵字可以是任意不可變型別,通常用字串或數值。字典是 python 唯一的乙個 對映型別,字串 元組 列表屬於序列型別。字典的定義 字典 是無序的 鍵 值 key value 對集合,鍵必須是互不相同的 在同乙個字...
06,字典與集合
字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值 key value 對用冒號 分割,每個對之間用逗號 分割,整個字典包括在花括號 中 格式如下所示 也就是說,key就相當於字典裡的詞條而value則是詞條後面的文字 呼叫的話則是print 字典名 key 作為序列的一種,字典也支援 ...
python基礎一 05 字典
字典是乙個無序的,可以修改的,元素呈鍵值對形式,以逗號分割的,以大括號包圍的資料型別 當列表下標很多,查詢資料不方便時,我們可以使用字典。字典是python基礎資料型別當中唯一乙個對映關係的資料型別 由於字典無序,所以我們定義字典和字典生成之後的元素的順序是不同的 1.定義乙個字典 字典的每個元素由...