Python基础操作(四)(新手必看)超详细(字典操作专题)

字典

定义:使用{"key":"value"}键值对来确定字典,以逗号分隔,以大括号去包裹 的序列
声明:
空字典

dic = dict{}
dic = {}

非空字典

dic = {“key”:“value”}

注意:定义字典时,字典的键(key),不可以随便乱用,可变数据类型不能够作为字典的键
字典的value值可以是任意的数据类型

定义字典

dic = {"name":"倾染",'age':18}
print(dic)  # {'name': '倾染', '"age': 18}
print(type(dic))  # <class 'dict'>
dic1 = {"name":"倾染",'age':18,['age']:20}
print(dic1)  # 报错(类型错误)

数值类型的键

dic1 = {"name":"倾染",'age':18,1:'height'}
print(dic1)  # {'name': '倾染', 'age': 18, 1: 'height'}

字典的方法
字典取值:字典没有索引,通过key值获取value值

获取值

dic = {"name":"倾染",'age':18}
name = dic['name']
print(name)  # 倾染

1.增加操作
1.1 格式:字典[key] = value
注意:字典中的key如果存在,重新赋值,会覆盖掉原本的值
如果不存在,添加一个新的键值对

dic = {"name":"倾染",'age':18}
dic['height'] = 1.82
print(dic)  # {'name': '倾染', 'age': 18, 'height': 1.82}
dic['name'] = '老蓝'
print(dic)  # {'name': '老蓝', 'age': 18, 'height': 1.82}

1.2 setdefault (key,default_value)
注意:如果字典中key不存在,直接添加键值对
如果存在,不会重新赋值,不会覆盖原有的值,不会发生变化

dic = {"name":"倾染",'age':18}
dic.setdefault('sex','man')
print(dic)  # {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.setdefault('name','老蓝')
print(dic)  # {'name': '倾染', 'age': 18, 'sex': 'man'}

2.删除操作
2.1 pop(key) 弹出:弹出指定的键值对
有返回值,返回值是被弹出的值

dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
res = dic.pop('name')
print(dic)  # {'age': 18, 'sex': 'man'}
print(res)  # 倾染

2.2 popitem() --> 弹出:不需要接受任何参数,默认弹出最后一个键值对
有返回值,返回值是一个元组

dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
res = dic.popitem()
dic = {'name': '倾染', 'age': 18, 'sex': 'man'} # {'name': '倾染', 'age': 18}
print(res)  # ('sex', 'man')

2.3 clear --> 清空字典

dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.clear()
print(dic)  # {}

3.修改操作
3.1 update
参数:传入的是一个字典

dic = {'name': '倾染', 'age': 18, 'sex': 'man'}
dic.update({'age':20})
print(dic)  # {'name': '倾染', 'age': 20, 'sex': 'man'}
dic1 = {'height': 182}
dic.update(dic1)
print(dic)  # {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}

4.查找方法
4.1 查找字典中所有的键值

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.keys()
print(res)  # dict_keys(['name', 'age', 'sex', 'height'])

4.2 查找字典中所有的value值

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.values()
print(res)  # dict_values(['倾染', 20, 'man', 182])

4.3 get() 以键取值,如果键不存在,返回None
注意:get方法,获取值的时候,如果key存在,返回key对应的value
如果不存在,有默认值,则返回默认值
如果key不存在,没有默认值,返回值为None

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.get('name')
print(res)  # 倾染
res1 = dic.get('name1')
print(res1)  # None
res2 = dic.get('name','lisi')
print(res2)  # 倾染
res5 = dic.get('name1','lisi')
print(res5)  # lisi

4.4 items() 返回字典的键值对,放到列表中,并且每一个键值对都是元组

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = dic.items()
print(res)  # dict_items([('name', '倾染'), ('age', 20), ('sex', 'man'), ('height', 182)])
for i in dic.items():
    print(i)  # ('name', '倾染') ('age', 20) ('sex', 'man') ('height', 182)

4.5 len() 字典的长度=键值对的个数

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
res = len(dic)
print(res)  # 4

for 和 if
循环和判断:对键进行操作
注意:只能通过键去判断

dic = {'name': '倾染', 'age': 20, 'sex': 'man', 'height': 182}
for i in dic:
    print(i)  # name age sex height
if 'name' in dic:
    print('在里面')
else:
    print('不在里面')
    #  在里面

dict()函数
定义空字典

dic = dict()
print(dic)  # {}

注意:dict() 不可以传递字符串

str = 'hello'
dic2 = dict(str)
print(dic2)  # 报错(值错误)

传入一个可迭代的对象(二维:e.g. 列表、元组)

dic = dict([1,2,3,4,5,6])
dic1 = dict([(1,2),(3,4),(5,6)])
dic2 = dict([[1,2],[3,4],[5,6]])
print(dic)  # 报错
print(dic1)  # {1: 2, 3: 4, 5: 6}
print(dic2)  # {1: 2, 3: 4, 5: 6}

通过关键字去创建字典

dic = dict(name = 'Qingran',age = '20')
print(dic)  # {'name': 'Qingran', 'age': '20'}

练习:

info = {
    "001":{'name':'Tom','age':19,'address':'北京'},
    "002":{'name':'Jerry','age':20,'address':'上海'},
    "003":{'name':'Laowang','age':28,'address':'广州'},
}

需求:获取003所有的key键和valu值

dic = info.get("003")
res = dic.keys()
print(res)
ans = dic.values()
print(ans)

# dict_keys(['name', 'age', 'address'])
# dict_values(['Laowang', 28, '广州'])

法二:

for k,v in info["003"].items():
    print(k,v)
# name Laowang
# age 28
# address 广州
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值