python字典(dict)学习

➢字典是无序的对象集合, 使用键-值(key-value)存储,具有极快的查找速度。
➢键(key)必须使用不可变类型。
➢同一个字典中,键(key)必须是唯一的。

1、字典的定义

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

说明:
字典和列表一样,也能够存储多个数据 。

列表中找某个元素时,是根据下标进行的 。

字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中 的'name'、'id'、'sex') 。

字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值。


2 、根据键访问值 

info = {"name":"haha","age":66}

#字典的访问
print(info["name"])
print(info["age"])

若访问不存在的键,则会报错

info = {"name":"haha","age":66}

#访问了不存在的键
print(info["gender"])   #KeyError: 'gender'  直接访问会报错

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

info = {"name":"haha","age":66}



print(info.get("gender"))    #None   使用get方法,没有找到相应的键,默认返回None


print(info.get("gender","M"))   #默认值是"M"  可以设定默认值

3、常用操作

3.1、增加

info = {"name":"可可西里","age":12}
newID = input("请输入新的学号")
info["id"] = newID

print(info["id"])

3.2、删除del

删除key

info = {"name":"可可西里","age":12}
print("删除前:%s"%info["name"])

del info["name"]

print("删除后:%s"%info["name"])   #KeyError: 'name'   删除的是键值对

删除字典

info = {"name":"可可西里","age":12}
print("删除前:%s"%info)       #NameError: name 'info' is not defined

del info

print("删除后:%s"%info)

3.3、删除clear

info = {"name":"可可西里","age":12}
print("清空前:%s"%info)

info.clear()

print("清空后:%s"%info)    #清空后:{}

3.4、修改

info = {"name":"可可西里","age":12}
info["age"] = 20
print(info["age"])

3.5、查找

info = {"id":1,"name":"可可西里","age":12}


print(info.keys())   #拿到所有的键(列表)  dict_keys(['id', 'name', 'age'])
print(info.values()) #拿到所有的值(列表)  dict_values([1, '可可西里', 12])
print(info.items())  #拿到所有的项(元组)  dict_items([('id', 1), ('name', '可可西里'), ('age', 12)])

3.6、遍历

3.6.1、遍历所有的键

for key in info.keys():
    print(key)

3.6.2、遍历所有的值

for value in info.values():
    print(value)

3.6.3、遍历所有的键值对

for key,value in info.items():
    print("key=%s,value=%s"%(key,value))

3.6.4、用枚举类型 同时拿到list下标和内容

 

操作名称 操作方法  举例
访问字典中的元素 (1)通过key访问,key不存在会抛出异常print(dict1[“小明”])
访问字典中的元素 (2)通过get方法,不存在返回None, 不抛出异常print(dict1.get(“”小明))
遍历字典(1)  通过for循环,只能获取keyfor key in dict1: print(key, dict1[key])
遍历字典(2)  配合items方法,获取key和valfor key, val in dict1.items(): print(key, val)
直接获取所有key和 value使用keys和values方法print(dict1.values()) print(dict1.keys())
修改val  直接通过key修改  dict1['小明'] = 2003
新增键值对 直接新增  dict1[‘小李'] = 2005
字典元素的删除  通过key删除 del dict1['小李']
字典元素的弹出 通过pop方法  dict1.pop("小李")
判断key是否存在  in  “key” in dict1
合并字典  update  dict1.update(dict2)
把两个列表转为字典  dict+zip方法 dict(zip(list1,list2))
把一个嵌套列表转为字典  dict方法 dict2 = dict([['key1', 'value1']])
清除字典内的元素  clear方法 dict1.clear()
获取字典长度  len()  
获取大的key max()  
获取小的key  min()  
其它类型对象转换成字典  dict()  dict([(1, 2), (2, 3)])

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值