1.字典的定义

成都创新互联专注于企业网络营销推广、网站重做改版、瓮安网站定制设计、自适应品牌网站建设、H5高端网站建设、成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为瓮安等各大城市提供网站开发制作服务。
使用大括号包含,每个元素使用key:value的格式,元素之间用逗号隔开
定义一个字典
>>> user_dict = {'id' : 1, 'name' : 'likuan', 'sex' : '男', 'tel' : '18829787559', 'addr' : '西安市'}
>>> user_dict2.字典的操作
(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)
名称栏目:Python自动化运维开发----基础(九)字典
网站网址:http://www.jxjierui.cn/article/jcgpdo.html


咨询
建站咨询
