python數據類型之三
阿新 • • 發佈:2018-05-11
value 字符 RM 基本數據 default rem 循環 註意 集合
字典
字典的基本結構
# 字典, 鍵值對 dict類
# 字典的基本結構
# 字典的值可以是任何值
# 字典的鍵不能是列表,字典, 最好也不要用布爾值(可能會和1和0重復)
# 字典無序,
my_dict = { "k1": "v1", # 鍵值對 "k2": "v2", "k3": 12, "k4": [ 1, 2, [], (), { "kk1": 11, "kk2": 12, } ], (1, 2, 3): "數字" } print(my_dict)
索引找到指定元素 提取v1, 11
v = my_dict["k1"] v2 = my_dict[‘k4‘][4]["kk1"] print(v, v2) # 字典支持del刪除 del my_dict["k2"]
遍歷字典
# 默認遍歷key, 這裏顯示的是 所有的key # 等價於 in my_dict.keys(), 同樣也有 in my_dict.values() for item in my_dict: print(item) for item in my_dict:print(item, my_dict[item]) # 遍歷字典二 for key, value in my_dict.items(): print(key, value) dic = { "k1": ‘v1‘, "k2": ‘v2‘,
遍歷字典的常用函數 kyes(), values(), items(), update(),get()
# def update(self, E=None, **F) # 更新字典, 有的 改變, 沒有的自動添加 dic.update({‘k2‘:1234, ‘k10‘:10}) print(dic) # 根據key獲取值,當key不存在時可以指定默認值,默認值不存在時(None) # def get(self, k, d=None) # my_dict.get(‘k1‘) keys(), values(), items()參考上面的遍歷字典
字典的其他函數
# def clear(self) # def copy(self) # @staticmethod # known case 靜態方法, 可以直接用dict調用 # def fromkeys(*args, **kwargs) # 根據序列,創建字典 以你個的參數作為鍵值對 v = dict.fromkeys([1,2,3], [4,5]) print(v) # def setdefault(self, k, d=None) # 設置值, 如果key不存在, 就添加,(‘k5‘:12) 存在就不變 dic.setdefault(‘k5‘, 12) print(dic)
集合 set
集合的基本結構
集合:可以包含多個元素,用逗號分割, 集合的元素遵循三個原則: 1:每個元素必須是不可變類型(可hash,可作為字典的key) 2:沒有重復的元素 3:無序 註意集合的目的是將不同的值存放到一起,不同的集合間用來做關系運算,無需糾結於集合中單個值
# 不同元素組成, 無序, 集合中必須是不可變類型,(int, str, 元組)
#優先掌握的操作: #1、長度len #2、成員運算in和not in #3、|合集 #4、&交集 #5、-差集 #6、^對稱差集 #7、== #8、父集:>,>=
#9、子集:<,<=
s = {1, 2, 3, 4, 5} print(s) # set s = set(‘123445‘) print(s) s = set([‘haha‘, ‘heihi‘, ‘heng‘]) print(s)
集合的基本操作
# 添加一個元素 # def add(self, *args, **kwargs) s.add((‘123‘, ‘heihi‘, ‘ni‘)) print(s) # 清空 # def clear(self, *args, **kwargs) # 淺拷貝 # def copy(self, *args, **kwargs): # pop隨機刪除, remove刪除指定的, remove如果刪除的元素不存在 就回報錯 # def pop(self, *args, **kwargs) # s.pop() # s.remove(‘123‘) # def remove(self, *args, **kwargs) # 刪除一個元素, 如果元素不存在 也不報錯 # def discard(self, *args, **kwargs)
集合的並交差運算
# 集合運算,並交差 p = [‘a‘, ‘b‘, ‘c‘, ‘d‘] l = [‘a‘, ‘c‘, ‘e‘] p_s = set(p) l_s = set(l) # 求交集s1&s2 # def intersection(self, *args, **kwargs) print(p_s.intersection(l_s)) print(p_s & l_s) # 求差集 def difference(self, *args, **kwargs) # p_s 中有而 l_s沒有的 print(p_s.difference(l_s)) print(p_s - l_s) # 求並集 print(p_s.union(l_s)) print(p_s | l_s) # 求交叉補集 print(p_s.symmetric_difference(l_s)) print(p_s ^ l_s) # 補充 # p_s.difference_update(l_s) # 等價於 # p_s = p_s - l_s # 判斷子集, 也有>= isup print(p_s.issubset(l_s)) print(p_s <= l_s)
利用集合去重
# 簡單去重操作 my_list = [1, 2, 3, ‘a‘, ‘b‘, 1, 2, ‘a‘] # m_s = set(my_list) my_list = list(set(my_list))
基本數據類型常用方法總結
# 常用數據類型的方法
# int 常用 int()
# 字符串
# find/replace/join/strip/startwith/split/upper/lower/format(in)
# 列表
# append/extend/insert, 索引,切片,循環(in)
# 元組
# 忽略, 但是要知道 索引,切片,循環, 一級元素 不可以修改(in)
# 字典
# get/update/keys/values/items, 循環,索引, (in)
# 判斷是否存在,dic可以是字典,列表,字符串,元組
# v = ‘aa‘in dic
# 布爾值
# bool()
# 其中為空的有None, ‘‘, (),[],{},0 ==>False
python數據類型之三