一、什麼是字典
字典是以key:value的形式來儲存資料
用{}表示,儲存的是key:value
dic =print(dic)
二、字典的增刪該查(重點)
1.字典的新增
dic[新key] = 值
dic =dic["日本"] = "東京審判" # 新key表示新增
print(dic)
setdefault() (難點)
有新增的功能,如果key是存在的. 不新增
流程: 判斷你給的key是否在字典中存在了.如果已經存在了. 就不再新增. 如果不存在. 執行新增操作
dic =dic.setdefault("美國", "三傻大鬧波里活")
print(dic)
2.刪除
pop(key)
刪除指定key值的value
dic =dic.pop("郭德綱") # 你要記住的
print(dic)
popitem()
刪除最後一項,在python早期版本中字典是無序的,隨機刪除一項(2.x版本)
dic =dic.popitem()
print(dic)
3.修改
dic(key(舊)) = 值
dic =dic['河南'] = "燴麵" # 老key = 值
print(dic)
update()更新字典
把dic2懟到dic1裡面. 把dict2中的內容更新到dic1
dic1 =dic2 =
dic1.update(dic2) # 把dic2懟到dic1裡面. 把dict2中的內容更新到dic1
print(dic1)
print(dic2)
4.查詢
dic[key值]
dic1 =print(dic1["趙四"])
#如果print的是
print(dic1["趙四四"]) # keyerror: '趙四四' key不存在
get(key,value)
當key不存在. 返回第二個引數. 預設第二個引數是none
dic1 =print(dic1.get("劉能"))
print(dic1.get("劉能能", "沒有這個人")) # 當key不存在. 返回第二個引數. 預設第二個引數是none
setdefault(key, value)
setdefault() 第乙個功能是新增(當key不存在). 第二個功能是查詢(根據你給的key查詢)整個執行流程: 判斷給的key是否存在. 如果存在. 就不執行新增流程.直接查詢出這個key對應的value如果key不存在. 先執行新增操作. 再使用key把對應的value查詢出來
dic1 =ret = dic1.setdefault("皮長山", "皮校長")
print(ret) # 皮校長
ret = dic1.setdefault("王木生", "寶寶")
print(ret) # 范偉
5.遍歷,字典是乙個可迭代物件
for迴圈
dic =for key in dic: # 直接迴圈字典拿到的是key, 有key直接拿value
print(key)
print(dic[key])
不常用的:
keys()
拿到字典裡的每乙個key
dic =print(dic.keys()) # dict_keys(['趙四', '劉能', '王木生']) 像列表. 山寨列表
for k in dic.keys(): # 拿到的是字典中的每乙個key
print(k)
values()
當需要單獨獲取到所有的value的時候
print(dic.values()) # dict_values(['劉曉光', '王曉利', '范偉']) 所有的value的乙個資料集for v in dic.values():
print(v)
解構
# 遍歷字典兩套方案dic =
#1. 使用for迴圈直接遍歷字典的key
for key in dic:
print(key)
print(dic[key])
#2. 可以使用字典的items()+解構可以直接獲取到key和value
for k, v in dic.items():
print(k)
print(v)
三、字典的巢狀
字典的巢狀. 字典套字典
一層一層的去找
例子:
wf = ,"zhuli":
},"zhuli":,
"children":[, ]
}wf['children'][1]["age"] = 2
# 汪峰老婆替身的名字
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)
四、集合
去重複集合中的元素是不重要的,必須是可hash的(不可變),例如字典中的key
空集合:set()
空元組:tuple()
空列表:list()
非空集合:例如 集合,集合其實就是不存value的字典
由於不太重要這裡就不一一講解了,下面是關於集合的例子
s = # 不重複的print(s)
# 唯一能用到的點. 去重複
lst = ["麻將", "牌九", "骰子", "撲克", "骰子", "撲克", "撲克", "撲克", ]
# 把列表轉化成集合 x 轉化成y型別 y()
s = set(lst)
# print(s)
# 把集合變回列表
lst = list(s)
print(lst) # 順序是亂的
s =
s.add("劉嘉玲") # 記
print(s)
s.update() # 迭代更新
print(s)
ret = s.pop() # 隨機刪除乙個
print(s)
print(ret)
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)
集合相關的一些方法
擴充套件 collections 中獲得list 中最大值的方法過濾掉為null的值 param coll 引數 list param 引數型別 return public static t max collection coll while i.hasnext if next null next....
常用的一些操作集合
一 python內建函式的使用 內建函式就是python自帶的函式,我們經常使用的內建函式有 簡單列幾個常用的函式 input print set bool abc bool max max 1,8,6,7,8,765,44,888,999,100000 min min 1,8,6,7,8,765,...
集合的一些操作總結
集合的特性 1.去重,2.無序,3.關係測試 集合建立 set 方法,列表list 集合的關係測試 並集 list 1.union list 2 or 交集 list 1.intersection list 2 or 差集 list 1.difference list 2 or list 1 lis...