字典以及相關操作,集合的一些講解

2022-08-20 19:21:08 字數 4276 閱讀 7687

一、什麼是字典

字典是以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...