Python中的字典(Dict)的使用

在Python语言中内置的数据结构有:列表(list)、元组(tuple)、字典(dict)、集合(set), 这4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。字典(dict)是一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典中的键必须是唯一的,即不能出现重复的键但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

字典的基本格式为

dict1 = {key1 : value1, key2 : value2 }

具体操作见代码

#声明一个字典
dict1={"语文":99,"数学":98,"英语":97}
dict1
输出:{'语文': 99, '数学': 98, '英语': 97}


#字典中的键可以是不同类型的,但需是不可变的数据类型,比如字符串,数字,元组等
dict1={"name":"张三",98:"成绩",("上海","中国"):"地址"}
dict1
输出:会报错“raceback (most recent call last):File "<stdin>", line 1, in <module> ypeError: unhashable type: 'list'”


#如果用可变的数据类型做键,比如list
dict1={"name":"张三",98:"成绩",["上海","中国"]:"地址"}
dict1
输出:{'name': '张三', 98: '成绩', ('上海', '中国'): '地址'}

#还可以创建空的字典
dict1={}
dict1
输出:{}


#还可以声明空value的字典,只要键,没有value,并且value的值可以是重复的,所以这里是重复的空value
dict1={"数学","语文","英语"}
dict1
输出:{'英语', '语文', '数学'}


#如果键重复,则后面的同样的键的值会覆盖前面的键的值
dict1={"语文":99,"语文":98,"英语":97}
dict1
输出:{'语文': 98, '英语': 97}


#对字典的操作,都是通过对键访问
#对于字典dict1={"语文":99,"语文":98,"英语":97},访问键为语文的值
dict1={"语文":99,"语文":98,"英语":97}
dict1["语文"]
输出:98
#还可以使用get(),get()方法其实就是根据 key 来获取 value,
#当使用方括号语法访问并不存在的 key 时,字典会引发 KeyError 错误;但如果使用 get() 方法访问不存在的 key,该方法会简单地返回 None,不会导致错误。
dict1={"语文":99,"语文":98,"英语":97}
print(dict1.get("语文"))
输出:98


#添加键值对,只需要对不存在的key进行赋值即可
dict1={"语文":99,"语文":98,"英语":97}
dict1["化学"]=89
dict1
输出:{'语文': 98, '英语': 97, '化学': 89}

#修改键值对的值,只需要对key进行重新赋值
dict1={"语文":99,"语文":98,"英语":97}
dict1["英语"]=150
dict1
输出:{'语文': 98, '英语': 150}
#还可以使用update()来对键值对进行修改了添加
#update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。
# 在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;
# 如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。
dict1={"语文":99,"数学":98,"英语":97}
dict1.update({"语文":199,"化学":98})
dict1
输出:{'语文': 199, '数学': 98, '英语': 97, '化学': 98}



#删除字典键值对使用del
dict1={"语文":99,"语文":98,"英语":97}
del dict1["英语"]
dict1
输出:{'语文': 98, '英语': 97}
#还可以使用del删除字典
dict1={"语文":99,"语文":98,"英语":97}
del dict1
dict1
输出:"Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'dict1' is not defined(dict1字典没有定義)"

#还可以使用clear()清空字典,
dict1={"语文":99,"语文":98,"英语":97}
dict1.clear()
dict1
输出:{} "输出一个空的字典,即dict1字典还在,只是没有了元素,不同于del"


#将字典转换成字符串
dict1={"语文":99,"语文":98,"英语":97}
str(dict1)
输出:"{'语文': 98, '英语': 97}"

#同样可以将字典转化成list
dict1={"语文":99,"语文":98,"英语":97}
list(dict1)
输出:['语文', '英语']



#items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。这三个方法依次返回 dict_items、dict_keys 和 dict_values 对象
#通过type可以返回变量类型
#字典的便利,传统的遍历只能输出键
dict1={"语文":99,"语文":98,"英语":97}
for item in dict1:
    print(item)
输出:语文 英语

#输出每个键值对
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.items();
print(type(d1))
输出:<class 'dict_items'>
for item in d1:
    print(item)
输出:('语文', 98)  ('英语', 97)

#输出每个值
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.values();
print(type(d1))
输出:<class 'dict_values'>
for item in d1:
    print(item)
输出:98 97

#输出每个键
dict1={"语文":99,"语文":98,"英语":97}
d1= dict1.keys();
print(type(d1))
输出:<class 'dict_keys'>
for item in d1:
    print(item)
输出:语文 英语

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值