首页 > 编程语言 > 详细

Python-数据类型之字典

时间:2019-04-13 19:58:04      阅读:104      评论:0      收藏:0      [点我收藏+]

一: 概述

  • 字典是有大括号,逗号分隔,有k/v组成
  • 字典的键必须hashable,如数字,字符串,布尔值,元组

二: 操作

2.1 增

 

2.1.1  直接赋值

 

  • 如果键不存在,则增加
dic = {name: wangys,age: 18}
dic[sex] = male
print(dic)
# {‘name‘: ‘wangys‘, ‘age‘: 18, ‘sex‘: ‘male‘}

 

  • 如果键存在,则修改
dic = {name: wangys,age: 18}
dic[name] = wc
print(dic)

# {‘name‘: ‘wc‘, ‘age‘: 18}

 

2.1.2 sedefault

 

  • 如果键不存在,则增加
dic = {name: wangys,age: 18}
dic.setdefault(sex,male)
print(dic)
# {‘name‘: ‘wangys‘, ‘age‘: 18, ‘sex‘: ‘male‘}
  • 如果键存在,不过做更改
dic = {name: wangys,age: 18}
dic.setdefault(name,wc)
print(dic)
# {‘name‘: ‘wangys‘, ‘age‘: 18}

 

2.2 删

2.2.1 pop

  • 如果键存在,则删除这个k/v
  • 返回值为删除键的value值
dic = {name: wangys,age: 18}
ret = dic.pop(age)
print(ret)
print(dic)

# 18
# {‘name‘: ‘wangys‘}
  • 如果键不存在,则报错 KeyError
dic = {name: wangys,age: 18}
ret = dic.pop(male)
print(ret)
print(dic)
# KeyError: ‘male‘

 

2.2.2 del

  • 键如果存在,则删除
  • 如果不存在,则包错 KeyError
dic = {name: wangys,age: 18}
del dic[name]
print(dic)
del dic[male]
print(dic)

# {‘age‘: 18}
# KeyError: ‘male‘

 

2.2.3 clear

dic = {name: wangys,age: 18}
dic.clear()
print(dic)
#{}

 

2.2.4 popitem

  • 随机删除一个元素
  • 返回值为kv组成的元祖
dic = {name: wangys,age: 18}
print(dic.popitem())
print(dic)

# (‘age‘, 18)
# {‘name‘: ‘wangys‘}

 

 

 

2.3 改

2.3.1  直接修改

dic = {name: wangys,age: 18}
dic[name] = wc
print(dic)
# {‘name‘: ‘wc‘, ‘age‘: 18}

 

2.3.2 update

  • 两个字典合并
  • 如果键冲突,则更新,如果不冲突则增加
dic1 = {name: wangys,age: 18}
dic2 = {name: wc,sex: male}
dic1.update(dic2)
print(dic1)
# {‘name‘: ‘wc‘, ‘age‘: 18, ‘sex‘: ‘male‘}

 

 

2.4 查

2.4.1 直接查

  • 如果键不存在,则报错,KeyError
dic1 = {name: wangys,age: 18}
print(dic1[name])
# wangys
dic1 = {name: wangys,age: 18}
print(dic1[male])
# KeyError: ‘male‘

 

2.4.2 get

  • 如果不存在,则返回None,也可以指定返回值
dic1 = {name: wangys,age: 18}
ret1 = dic1.get(name)
ret2 = dic1.get(male)
ret3 = dic1.get(male,改键不存在)
print(ret1,ret2,ret3)
# wangys None 改键不存在

 

 

三: 其他操作

 

3.1 for 循环

  • 得到的是key
dic1 = {name: wangys,age: 18}
for item in dic1:
    print(item)
# name
# age

 

3.2  keys

  • 返回值是由key组成的特殊列表
  • 是可迭代的,可以被for循环
dic1 = {name: wangys,age: 18}
ret = dic1.keys()
print(ret)
# dict_keys([‘name‘, ‘age‘])

 

dic1 = {name: wangys,age: 18}
ret = dic1.keys()
for key in ret:
    print(key)

 

3.3 values

  • 返回值是由values值组成的特殊列表
  • 是可迭代的,可以被for循环
dic1 = {name: wangys,age: 18}
ret = dic1.values()
print(ret)
#dict_values([‘wangys‘, 18])

 

3.4 items

  • 是有key value组成的小元组后再次组成一个特殊列表,可迭代,可以被for循环
dic1 = {name: wangys,age: 18}
ret = dic1.items()
print(ret)
# dict_items([(‘name‘, ‘wangys‘), (‘age‘, 18)])

 

Python-数据类型之字典

原文:https://www.cnblogs.com/wc89/p/10702443.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!