数据类型(字典)

字典{ }

字典是一种key-value的数据类型

定义:{key1:value1,key2:value2}

1、键与值用冒号“:”分开;
2、项与项用逗号“,”分开;
info = {
    "stu1101":"jack",
    "stu1102":"lily",
    "stu1103":"peiqi"
}

特性:

1.key-value结构
2.key必须可hash、且必须为不可变数据类型、必须唯一,不能重复
3.可存放任意多个值、可修改、可以不唯一
4.无序
5.查找速度快

常见操作

创建

 dic.keys() 返回一个包含字典所有KEY的列表  

 dic.values() 返回一个包含字典所有value的列表   

 dic.items() 返回一个包含所有(键,值)元祖的列表

 dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表

info = {
    "1101":"小萌",
    "1102":"小智",
    "1103":"小强"
}

增加

dic.['new_key'] = 'value'

dic.setdefault( key, None),如果字典中不存在kkey键,由dic.[key] = default 为他赋值

info = {
    "1101":"小萌",
    "1102":"小智",
    "1103":"小强"
}
info["1104"] = "小王"#增加原字典中没有的key
print (info)

  输出

{'1101': '小萌', '1102': '小智', '1103': '小强', '1104': '小王'}

修改

增加新键/值对,修改或删除已有键/值

dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值

dic.update(dic2)将字典dic2的键值对添加到字典dic中

info = {
    "1101": "小萌",
    "1102": "小智",
    "1103": "小强",
    '1104': '小王'
}
info["1103"] = "小张"#对制定key重新赋值
print (info)

  输出

{'1101': '小萌', '1102': '小智', '1103': '小张', '1104': '小王'}

查找

dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)

dic["key"],返回字典中key对应的值,若key不存在字典中,则报错

info = {
"1101": "小萌",
"1102": "小智",
"1103": "小强",
'1104': '小王'
}
print(info.get("1102"))#获取指定key,对应的值
print(info.get("1108"))#获取指定key,对应的值,若没有返回None
print(info["1103"])#获取 没有会报错

 输出

info = {
"1101": "小萌",
"1102": "小智",
"1103": "小强",
'1104': '小王'
}

删除 

1、dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;     

2、dic.clear() 删除字典中的所有项或元素;

info = {
    "1101": "小萌",
    "1102": "小智",
    "1103": "小强",
    '1104': '小王'
}
print(info.pop("1102"))#删除指定key和对应的值
print(info)
info.clear()#删除字典中的所有
print(info)#获取指定key,对应的值,若没有返回None

  输出

小智
{'1101': '小萌', '1103': '小强', '1104': '小王'}
{}

判断

“key” in dic #判断某key是否在字典里

info = {
"1101": "小萌",
"1102": "小智",
"1103": "小强",
'1104': '小王'
}
print("1102" in info)#判断某key是否在字典里

循环

for k in dic.keys()#循环字典key

for k,v in dic.items() #循环字典key和value

for k in dic #循环字典key

info = {
    "1101": "小萌",
    "1102": "小智",
    "1103": "小强",
    '1104': '小王'
}
for k in info.keys():#循环字典key
    print("@",k)
for k,v in info.items():#循环字典key和value
    print(k,v,"-")
for k in info:#循环字典key
    print("!",k)

  输出

@ 1101
@ 1102
@ 1103
@ 1104
1101 小萌 -
1102 小智 -
1103 小强 -
1104 小王 -
! 1101
! 1102
! 1103
! 1104

长度

len(dic) 

info = {
    "1101": "小萌",
    "1102": "小智",
    "1103": "小强",
    '1104': '小王'
}
print(len(info))

  输出

4

猜你喜欢

转载自www.cnblogs.com/fantsaymwq/p/9496939.html