您好,登錄后才能下訂單哦!
1.字典的定義
使用大括號包含,每個元素使用key:value的格式,元素之間用逗號隔開
定義一個字典
>>> user_dict = {'id' : 1, 'name' : 'likuan', 'sex' : '男', 'tel' : '18829787559', 'addr' : '西安市'} >>> user_dict
2.字典的操作
(1)字典的訪問 字典名[key]
>>> user_dict['name'] 'likuan'
(2)字典的更新 key值存在就更新
>>> user_dict {'id': 1, 'name': 'likuan', 'sex': '男', 'tel': '18829787559', 'addr': '西安市'} >>> user_dict['sex'] = '女' >>> user_dict {'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市'}
(3)字典的新增
>>> user_dict['age'] = 25 >>> user_dict {'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市', 'age': 25}
(4)字典的刪除
>>> del user_dict['age'] >>> user_dict {'id': 1, 'name': 'likuan', 'sex': '女', 'tel': '18829787559', 'addr': '西安市'}
3.字典進行max,min , len , in , not in 操作
(1)max函數(對key進行操作)
>>> max(user_dict) 'tel'
(2)min函數(對key進行操作)
>>> min(user_dict) 'addr'
(3)len函數(獲取字典的長度)
>>> len(user_dict) 4
(4)in (判斷key是否在字典內)
>>> 'sex' in user_dict True
(5)not in
>>> 'sex' not in user_dict False
(6)遍歷字典的value(key是不可變的)
>>> for i in user_dict: ... print(i,user_dict[i]) ... id 1 name likuan sex 女 tel 18829787559 addr 西安市
4.字典的三種類型轉換
第一種 空字典
>>> b = dict() >>> b {}
第二種
>>> c = dict(a=1, b=2) >>> c {'a': 1, 'b': 2}
第三種 可迭代對象,第一個作為key,第二個作為value
>>> a = dict([['a',1],['b',2]]) >>> a {'a': 1, 'b': 2}
5.小知識點
變量交換
>>> a = 1 >>> b = 2 >>> a, b = b, a >>> a 2 >>> b 1
元組的話可以省略括號
>>> b,a (1, 2)
通過元組給變量賦值
a,b,c = (1,2,3) a,b,c = 1,2,3
通過列表給字典賦值
>>> ll = [['a',1],['b',2]] >>> dd = {} >>> for a,b in ll: ... dd[a]=b ... >>> dd {'a': 1, 'b': 2}
6.小例子
eg1: 統計票數按列表中的名字統計次數
#!/usr/bin/python users = ['錐子', '錐子', '李寬', '李寬', '李密'] result = {} for user in users: if user not in result: result[user] = 1 else: result[user] += 1 print(result)
eg2:統計一串字符串中的字母出現的個數
#!/usr/bin/python artile = ''' The Zen of Python, by Tim Peters The Zen of Python, by Tim Peters The Zen of Python, by Tim Peters The Zen of Python, by Tim Peters ''' artile_string = {} for i in artile: if not i.isalpha(): continue if i not in artile_string: artile_string[i] = 1 else: artile_string[i] += 1 print(artile_string)
7.字典函數
(1)clear 函數 清空字典
>>> b {'t': 2, 'e': 1, 's': 1} >>> b.clear() >>> b {}
(2)copy 函數 復制一個字典,會生成一個新的字典和原來的字典在內存中的位置不一樣,如果通過 = 賦值的字典,在內存中的位置不會改變
>>> b = {'a': 1,'b':2} >>> b {'a': 1, 'b': 2} >>> a = b.copy() >>> a {'a': 1, 'b': 2} >>> id(a),id(b) (140695559209896, 140695559211480)
(3)pop 函數
pop.(‘a’) 移除相應的key值 并返回value
pop.(‘a’,‘z’) 移除的key值不存在返回Z
>>> a {'a': 1, 'b': 2, 'c': 3} >>> a.pop('c') 3 >>> a.pop('c','False') 'False'
(4)popitem 函數 隨機返回 第一個返回 key 第二個返回 value
(5)keys 函數 返回一個由key組成的list
>>> a.keys() dict_keys(['a', 'b'])
循環遍歷 key
>>> a {'a': 1, 'b': 2} >>> a.keys() dict_keys(['a', 'b']) >>> for i in a.keys(): ... print(i) ... a b
(6)values 函數 由所有的 value 組成的一個 list
>>> a.values() dict_values([1, 2])
循環遍歷所有的values
>>> for i in a.values(): ... print(i) ... 1 2
(7)items 函數 生成一個可迭代的列表
>>> a.items() dict_items([('a', 1), ('b', 2)]) >>> for i in a.items(): ... print(i) ... ('a', 1) ('b', 2)
循環打印key和value
>>> for key,value in a.items(): ... print(key,":",value) ... a : 1 b : 2
(8)formkeys函數 用一個可迭代的對象生成一個字典 第一個參數作為key 第二個參數作為value
>>> dict.fromkeys(range(10)) {0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None} >>> dict.fromkeys(range(10),1) {0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1, 9: 1}
(9)update函數 批量更新和添加字典,存在更新,不存在添加
>>> a {'a': 1, 'b': 2} >>> a.update({'b':3,'c':4}) >>> a {'a': 1, 'b': 3, 'c': 4}
(10)get函數 通過key獲取value值,key 存在返回value , 不存在返回None 或者自定義值
>>> a.get('c') 4 >>> a.get('d',False) False
(11)setdafault函數 如果 key存在則彈出原來的value,如果key 不存在添加key并且彈出設置的value
>>> a {'a': 1, 'b': 3, 'c': 4} >>> a.setdefault('a',2) 1 >>> a.setdefault('d',2) 2 >>> a {'a': 1, 'b': 3, 'c': 4, 'd': 2}
eg:使用setdefault函數做之前的統計
#!/usr/bin/python users = ['錐子', '錐子', '李寬', '李寬', '李密'] result = {} for user in users: result[user] = result.setdefault(user,0) + 1 print(result)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。