温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python自动化运维开发----基础(九)字典

发布时间:2020-06-17 20:22:28 来源:网络 阅读:369 作者:Demon宽 栏目:编程语言

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)


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI