从零开始学Python--字典映射

字典dict是Python中特有的一种数据类型,可以理解为是一种可变容器模型,可储存任意类型对象,主要有以下特点:
(1)字典的每个键值(key>=value)对用冒号(:)分割,
(2)每个对之间用逗号(,)分割
(3)整个字典包括在花括号‘{}’中
(4)在一个字典中,键‘key’必须是唯一的,但值‘value’则不必唯一
下面我们来看一些基本的例子
(1)字典dict及映射

dic={'小明':18,'小红':17,'小李':20}#键值对必须同时出现
#key必须为字符串str型
print(dic)
dic1={'a':13,'a':24}#一个键值只能出现一次,
#同一个键值被赋值两次,后一个键值会被记住
print(dic1)
#字典是一个无序集合,通过key来对应值
dic1['小李']=21#添加一个key,直接添加,因为字典没有顺序
print(dic1)
dic1['小李']=30#修改key值
del dic1['a']#删除key=‘a’
print(dic1)
# del dic1 删除整个字典

输出结果:
在这里插入图片描述
(2)字典声明

dic={'a':'hello','b':200}#直接通过‘{}’生成字典
dic1=dict(Jack=20,Marry=25,Jone=19)#使用dict()函数生成字典
print(dic1)
##复合序列声明字典
lst1=[('a','b'),('c','d'),('e','f')]#创建列表lst1
lst2=[['m',1],['n',2]]#创建列表lst2
lst3=[('e',[1,2]),('f',[4,5])]#创建列表lst3
dic2=dict(lst1)#通过dict()将列表转为字典
dic3=dict(lst2)#通过dict()将列表转为字典
dic4=dict(lst3)#通过dict()将列表转为字典
print(dic2,dic3,dic4)
keys=['a','b','c','d']
dics=dict.fromkeys(keys)#通过fromkeys()生成一个空字典
dics1=dict.fromkeys(keys,3)#生成一个key全为3的字典
print(dics)
print(dics1)

输出结果:
在这里插入图片描述
(3)字典内置函数方法

dic1={'a':1,'b':2}
dic2={'c':3,'d':4}
dic1.update(dic2)#字典更新及数据合并,不会改变dic2
print(dic1,dic2)

dic3=dic2
dic2.update({'f':8})#dic3随着dic2变化而变化
print(dic2,dic3)


dic4=dic3.copy()#dic4不会随着dic3变化而变化
dic3.update({'m':9})
print(dic3,dic4)

print('字典长度为:',len(dic4))
##字典中是通过key来判断的,不判断value
print('a'in dic1)#判断a是否在字典dic1的key中
print(1 in dic1)#判断value 1是否在字典dic1中
##字典列表
data=[{'name':'Jack','age':20},
      {'name':'Marry','age':21},
      {'name':'Lucy','age':23}]
for i in data:  #自定义函数,后面文章会提到
    print(i['name'])

输出结果:
在这里插入图片描述
(4)字典元素的访问

dic={'a':1,'b':2,'c':3}#创建字典
print(dic['b'])#访问时访问key值,不可以用序列中索引的格式
##嵌套字典的访问
poi={'name':'Jack','city':'beijing','information':{'address':'somewhere','num':2233}}
print(poi['information']['address'])

data=[{'name':'Jack','age':20,'information':{'address':'somewhere','num':22331}},
      {'name':'Marry','age':21,'information':{'address':'somewhere','num':22332}},
      {'name':'Lucy','age':23,'information':{'address':'somewhere','num':22334}}]
print(data[2]['information']['num'])

##函数get()直接访问key
print(poi.get('name'))
print(poi.get('type'))

##输出字典所有key
print(poi.keys(),type(poi.keys()))
print(list(poi.keys()))#以列表的形式输出

##输出字典所有key对应的值
print(poi.values(),type(poi.values()))#value视图
print(list(poi.values()))#以列表的形式输出


##输出字典所有元素
print(poi.items(),type(poi.items()))
print(list(poi.items()))#每个元素只包括两个元素

##字典元素的遍历
poi={'name':'Jack','city':'beijing','information':{'address':'somewhere','num':2233}}
for keys in poi:
    print(keys)
for values in poi.values():
    print(values)
    print('---')
    
for keys in poi:
    print(poi[keys])

##访问键值对
for (k,v) in poi.items():
    print('key为:%s,values为:%s'%(k,v))

输出结果:
在这里插入图片描述
以上是有关字典的一些基本操作,字典dict在做数据分析时是一个很常用的结构,建议掌握

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值