字典是python中惟一的映射類型,採用鍵值對(key-value)的形式存儲數據,查詢速度快。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,因此字典是無序存儲的,且key必須是可哈希的。python
可哈希表示key必須是不可變類型,如:數字、字符串、元組。git
字典(dictionary)是除列表意外python之中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。二者之間的區別在於:字典當中的元素是經過鍵來存取的,而不是經過偏移存取。數據結構
數據類型分類:
可變數據類型(不可哈希):list,dict,set。
不可變數據類型(可哈希):int,bool,str,tuple.
字典的鍵:不可變數據類型。
字典的值:任意數據類型。
容器類型:
容器類(承載各類數據類型):list,tuple,dict。.
字典的鍵是惟一的。
字典的順序:
3.5以前,字典是無序的。
3.6開始,字典建立的時候,按照必定的順序插入的數值,看起來是有序的。app
dic = {"name":"jin", "age":18, "sex":"male",} # 字典的增 # 第一種:有則覆蓋,無則增長 dic['hobby'] = 'girl' print(dic) # 第二種:有則不變,無則增長 dic.setdefault('hobby') # 無value時默認爲None dic.setdefault('hobby', 'girl') # 字典的刪 dic.pop(key, None) # 有返回值,爲刪除的value,無則報錯 dic.popitem() # 隨機刪除,有返回值 dic.clear() # 清楚字典 del dic[key] # 刪除字典或按key刪除 # 字典的改 dic['name'] = 'alex' print(dic) dic2 = {"name":"alex","weight":75} dic.updata(dic2) # 將dic2迭代添加並覆蓋dic裏已有的 # 字典的查 print(dic['name']) # 無則報錯 print(dic.get('name'))#無則返回None(能夠自定義返回內容)
# 其餘方法 dic = {"name":"jin", "age":18, "sex":"male"} print(dic.keys()) dict_keys(['name', 'age', 'sex']) print(dic.values()) dict_values(['jin', 18, 'male']) dic.keys()和dic.vaues()能夠for循環裏面的元素 for i in dic = for i in dic.keys() li = list(dic.keys()) # 變成列表 print(dic.items()) dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')]) for k, v in dic.items(): print(k, v)
概念:分別賦值函數
a = 4
b = 5
a, b = b, a
print(a,b)spa
dic = {"name_list":['張三','lisi','隔壁王叔叔'], 'dic2':{'name':'太白','age':12} } # 1 ,給列表追加一個元素:'旺旺' dic['name_list'].append('旺旺') print(dic) #,2,給列表lisi所有大寫 dic['name_list'][1] = dic['name_list'][1].upper() print(dic) #3,給dic2 對應的字典添加一個鍵值對:hobby:girl dic['dic2']['hobby'] = 'girl' print(dic)
# 四、有字符串"k:1|k1:2|k2:3|k3:4" 處理成字典 {'k':1,'k1':2....}
s = 'k:1|k1:2|k2:3|k3:4' dic = {} s = s.split('|') for i in s: i = i.split(':') dic[i[0]] = i[1] print(dic)
五、元素分類code
有以下值li= [11,22,33,44,55,66,77,88,99,90],將全部大於 66 的值保存至字典的第一個key中,將小於 66 的值保存至第二個key的值中。對象
即: {'k1': 大於66的全部值列表, 'k2': 小於66的全部值列表}blog
li= [11,22,33,44,55,66,77,88,99,90] dic = {} dic['k1'] = [] dic['k2'] = [] for i in li: if i >= 66: dic['k1'].append(i) else: dic['k2'].append(i) print(dic)
六、輸出商品列表,用戶輸入序號,顯示用戶選中的商品ip
商品 li = ["手機", "電腦", '鼠標墊', '遊艇']
要求:1:頁面顯示 序號 + 商品名稱,如:
1 手機
2 電腦
…
2: 用戶輸入選擇的商品序號,而後打印商品名稱
3:若是用戶輸入的商品序號有誤,則提示輸入有誤,並從新輸入。
4:用戶輸入Q或者q,退出程序。
li = ["手機", "電腦", '鼠標墊', '遊艇'] shopping_cart = [] for i, name in enumerate(li, 1): print(i, name) while True: choice = input('請選擇商品序號:').strip() if choice.upper() == 'Q': print('----------您已購買如下商品----------') for k in shopping_cart: print(k) break if choice.isdigit() and int(choice) <= len(li): choice = int(choice) shopping_cart.append(li[choice-1]) print(li[choice-1]) else: print('您輸入有誤,請從新輸入!')