21天学习python编程_字典
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了21天学习python编程_字典相关的知识,希望对你有一定的参考价值。
主要内容:
- 小目标:掌握字典相关知识点
- 主要内容:
1.理解字典;
2.字典遍历;
3.字典常用方法;
如果看完这篇文章,你还是弄不明白字典;
你来找我,我保证不打你,我给你发100的大红包。
1.字典基础
1.1 神马是字典?
- 字典是Python中唯一映射性数据结构,{key:value},且key是唯一的,value可以使任意对象;
- 字典是一种无序的数据结构;
- 结构如下:
{k1:v1,k2:v2,....kn:vn}
1.2 字典定义
d1 = {‘a‘:97, ‘b‘:98} d2 = {‘name‘:‘sun‘,‘age‘:10} print(d1) print(d2)
结果:
{‘a‘: 97, ‘b‘: 98} {‘name‘: ‘sun‘, ‘age‘: 10}
1.3 字典访问
- 使用key访问元组
d = {1: 2, 3: 4} print(d) #key:1,对应的值 print(‘d[1]:‘,d[1])
结果:
{1: 2, 3: 4} d[1]: 2
1.4 字段修改
- 使用key修改或者增加元素
d = {1: 2, 3: 4} d[1]=10 print(d) d[‘5‘] = ‘five‘ print(d)
结果:
{1: 10, 3: 4} {1: 10, 3: 4, ‘5‘: ‘five‘}
1.5 字典实质:
- 字典结构:不是k->v,而是:hash(k)->v
- 理解:先将key左hash处理,生成一个字符串ID,然后这个ID对应v
- 注意点:只有不可变数据结构才可以hash,例如:数字,元组,字符串,列表不可以。
例如:#key是一个列表 d1 = {[1]:1}
错误:TypeError: unhashable type: ‘list‘
1.6 字典中key必须是唯一的
示例:
d = {1:1,1:‘one‘}
print(d)
d1 = {1:‘one‘,1:1}
print(d1)
结果,最后一个有效:
{1: ‘one‘}
{1: 1}
1.7 dict创建字典
dict函数:
- dict():创建空字典
- dict(mapping):创建字典
#dict方法,每个列表中元素为可迭代对象,每个对象只有两个元素,
#注意:第一个元素必须可以hash
d1 = dict([[‘name‘,‘sun‘],[‘score‘,90]])
print(d1)
#列表每个元素为元组,元组只有两个元素
d3 = dict([(1,2),(3,4)])
print(d3)
#列表每个元素为字符串,字符串只能有两个字符
d2 = dict([‘12‘,‘34‘])
print(d2)
#元组每个元素为列表,列表只能有两个元素
d4 = dict(([‘name‘,‘li‘],[‘score‘,91]))
print(d4)
结果:
{‘name‘: ‘sun‘, ‘score‘: 90}
{1: 2, 3: 4}
{‘1‘: ‘2‘, ‘3‘: ‘4‘}
{‘name‘: ‘li‘, ‘score‘: 91}
2 字典相关操作:
2.1 常用函数
- len(obj, /):返回字典长度
- sum(iterable, start=0, /):对字典所有value求和,value必须支持加法操作且是一种类型对象
- max(iterable, *[, default=obj, key=func]):获取字典value中最大值
- in:key in d,判断key是否在d中,存在返回True,否则返回False
示例:
d = dict([(1,2),(3,4)])
print(‘len(d):‘,len(d))
print(‘sum(d):‘, sum(d))
print(‘max(d):‘, max(d))
结果:
len(d): 2
sum(d): 4
max(d): 3
2.2 字典遍历
d = dict([(1,2),(3,4)])
#获取字典所有key
for key in d:
print(key)
#遍历字典:
for key in d:
print(key,d[key])
3. 字典相关方法
3.1 fromkeys
- dict.fromkeys(iterable, value=None, /):根据序列创建字典,每个字典值为value
示例:keys = ‘abcd‘ #字典value默认为None d = dict.fromkeys(keys) print(d) #字典value默认为-1 d = dict.fromkeys(keys,-1) print(d)
结果:
{‘a‘: None, ‘b‘: None, ‘c‘: None, ‘d‘: None} {‘a‘: -1, ‘b‘: -1, ‘c‘: -1, ‘d‘: -1}
3.2 获取字典相关值
方法 | 说明 |
---|---|
D.keys() | 获取字典所有Keys, |
D.values() | 获取字典所有values, |
D.items() | 获取字典每个item |
示例:
d = dict([(‘name‘,‘sun‘), (‘age‘,18)])
#获取keys,keys为可迭代对象
print(d.keys())
#获取values,values为可迭代对象
print(d.values())
#获取每个item
print(d.items())
#遍历kv
for k,v in d.items():
print(f‘{k}:{v}‘,end=‘,‘)
结果:
dict_keys([‘name‘, ‘age‘])
dict_values([‘sun‘, 18])
dict_items([(‘name‘, ‘sun‘), (‘age‘, 18)])
name:sun,age:18,
3.3 获取字典key对应的值
- 一般方式:d[key],问题,如果key不在d中报错
- dict.get(key, default=None, /):获取key对应值,不存在返回default
- 推荐使用dict.get方法获取key对应的值
示例:d = dict([(‘name‘,‘sun‘), (‘age‘,18)]) print(‘name:‘, d.get(‘name‘, ‘unknow‘),‘sex:‘, d.get(‘sex‘, ‘unknow‘))
结果:name: sun sex: unknow
3.5:setdefault方法
- dict.setdefault(self, key, default=None, /):如果key存在,返回key对应的值,否则字典中添加元素,key:defatult
示例:
d = {1: 2, 3: 4}
print(d.setdefault(1,‘one‘))
#d并没有改变
print(d)
#增加新的元素
d.setdefault(‘one‘, 1)
print(d)
结果:
2
{1: 2, 3: 4}
{1: 2, 3: 4, ‘one‘: 1}
3.6 字典删除
- D.pop(k[,d]):返回并删除k对应的元素,如果k在dict中不存在且设置d,返回d,否则报异常
- D.popitem():返回一组k-v,并删除
- D.clear():清空字典
示例:
d = dict.fromkeys(‘1234‘, -1)
print(d)
print(‘pop(1):‘,d.pop(‘1‘))
#删除一组元素
print(d.popitem())
#清空字典
d.clear()
print(d)
结果:
{‘1‘: -1, ‘2‘: -1, ‘3‘: -1, ‘4‘: -1}
pop(1): -1
(‘4‘, -1)
{}
3.7 字典更新
- D.update([E, ]**F),E为字典,F为可迭代对象(k,v)
- 操作结果:for k in E: D[k] = E[k]
示例d = dict.fromkeys(‘1234‘, -1) print(d) d1 = {‘1‘:‘one‘, ‘5‘:‘five‘} d.update(d1) print(d)
结果:
{‘1‘: -1, ‘2‘: -1, ‘3‘: -1, ‘4‘: -1} {‘1‘: ‘one‘, ‘2‘: -1, ‘3‘: -1, ‘4‘: -1, ‘5‘: ‘five‘}
以上就是字典常用的操作;
总结重点:
- 字典一种无序的映射性数据结构;
- 理解key的处理,及hash
- 字典遍历方式
以上是关于21天学习python编程_字典的主要内容,如果未能解决你的问题,请参考以下文章