码迷,mamicode.com
首页 > 其他好文 > 详细

字典dict的知识点

时间:2018-09-18 19:54:59      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:rom   res   code   class   style   upd   ict   类型   col   

======================================基本使用======================================
1、用途: 用来存方多个(不同种类的)值

2、定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来
描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int\float\str\tuple)
定义:d={0:‘x‘,1.3:‘y‘,‘k1‘:‘z‘,(1,2,3):‘aaa‘} # d=dict(....)
d={0:x,1.3:y,k1:z,(1,2,3):aaa} # d=dict(....)
print(d[(1, 2, 3)])#元组是不可变类型
# d1={[1,2,3]:‘aaaaa‘}#字典的key不可以可变类型,列表是可变类型

#aaa

字典的转换

d=dict([(k1,1),(k2,2),(k3,3)])
print(d)
#{‘k1‘: 1, ‘k2‘: 2, ‘k3‘: 3}
d=dict(x=1,y=2,z=3)
print(d)
#{‘x‘: 1, ‘y‘: 2, ‘z‘: 3}
# 3、常用操作+内置的方法
#优先掌握的操作:
#1、按key存取值:可存可取
d = {x:1}
print(d[x])
d[x]=111
print(d)
d[y]=222
print(d)

#1
#{‘x‘: 111}
#{‘x‘: 111, ‘y‘: 222}

2、长度

d={x:1,y:2,z:3}
print(len(d))
#3
3、成员运算 in 或not in 判断是字典的key而不是value
d = {x:1, y:2,z:3}
print(x in d)
print(3 not in d)
#True
#True
4、删除
pop popitem
pop指定关键字删除,popitem
#删除  pop  popitem
d={x:1,y:2,z:3}
print(d.pop(x))
print(d)
# 随机删
print(d.popitem())
print(d)

#1
#{‘y‘: 2, ‘z‘: 3}
#(‘z‘, 3)
#{‘y‘: 2}
5、keys ,values items
keys,value与items生成对象在类似列表的内容
d={x:1,y:2,z:3}
print(d.keys())
print(d.values())
print(d.items())

# dict_keys([‘x‘, ‘y‘, ‘z‘])
#dict_values([1, 2, 3])
#dict_items([(‘x‘, 1), (‘y‘, 2), (‘z‘, 3)])

6.for循环

字典的keys

d={x:1,y:2,z:3}
# print(d.keys())
# print(d.values())
# print(d.items())

#x
#y
#z
其实等价于:
d={x:1,y:2,z:3}
for k in d:
    print(k)

字典的value

d={x:1,y:2,z:3}
for v in d.values():
    print(v)
#1
#2
#3

字典的item(keys和values)

d={x:1,y:2,z:3}
for k,v in d.items():
    print(k,v)
#x 1
#y 2
#z 3
 ======================================该类型总结====================================
r存多个值
无序
可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash
=====================================需要掌握的操作===================================================
get方法 取出对应key的value
# get方法 取出对应key的value
d={name:egon,age:18,sex:male,hobbies:[1,2,3]}
v=d.get(namexxxxxxx)#不会报错,只是返回None
print(v)
# v1=d[‘namexxxxxxxxxxx‘]#这种方法取值,若没有相应的关键字则会报错
# print(v1)

#None
update方法
d={name:egon,age:18,sex:male,hobbies:[1,2,3]}
d.update({x:1,name:"EGON"})#update更新,老字典中没有的内容添加,有的内容依照新字典的内容更改
print(d)

#{‘name‘: ‘EGON‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘hobbies‘: [1, 2, 3], ‘x‘: 1}
fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
keys=[name,age,sex]
#等效于for循环生成一个字典
# d={}
# for k in keys:
#     d[k]=None

d={}.fromkeys(keys,None)
print(d)
#{‘name‘: None, ‘age‘: None, ‘sex‘: None}
#常用于生成想要的初识格式的字典
setdefault  
# 按照setdefault的形式
d={"x":1,"y":2}
res=d.setdefault(x,11111) # 在key存在的情况下不修改值,会返回原值
print(d)
print(res)
# res=d.setdefault(‘z‘,11111) # 在key不存在的情况下会新增值,会返回新增的值
print(d)
print(res)

#{‘x‘: 1, ‘y‘: 2}
#1
#{‘x‘: 1, ‘y‘: 2}
#1

 

 

 

 

 

字典dict的知识点

标签:rom   res   code   class   style   upd   ict   类型   col   

原文地址:https://www.cnblogs.com/msj513/p/9670763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!