Python 字典总结

字典

创建字典

字典时无序的
在{}内用逗号分隔开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key则必须是不可变类型,通常key应该是字符串类型,因为字符串类型会对value有描述性的功能。

d = {'name': 'shen', 'age': 20, 'gender': 'male'}
print(d, type(d))
>>>{'name': 'shen', 'age': 20, 'gender': 'male'} <class 'dict'>

使用dict()创建字典

d = dict(name='shen', age=20, gender='male') # 这里key的名字只能为字母和数字组成的,不可以纯数字,但可以纯字母
print(d, type(d))
>>>{'name': 'shen', 'age': 20, 'gender': 'male'} <class 'dict'>

使用 fromkeys()创建字典

# fromkeys会从**元组**中取出每个值当做key,然后与None组成key:value放到字典中
d = {}
d = d.fromkeys(('name','age','sex'),None)
print(d)
>>>{'age': None, 'sex': None, 'name': None}

补充

当Key值重复时,只会保留一个,最后读到的

d = {'name': 'shen', 'age': 20, 'gender': 'male', 'name' : 'jia'}
print(d, type(d))
>>>{'name': 'jia', 'age': 20, 'gender': 'male'} <class 'dict'>

键keys(),值values(),键值对items()

d = {'age': 20, 'gender': 'male'}
# 获取字典所有的key
d = {'age': 20, 'gender': 'male'}
a = d.keys()
print(a)
>>>dict_keys(['age', 'gender'])
# 获取字典所有的value
d = {'age': 20, 'gender': 'male'}
a = d.values()
print(a)
>>>dict_values([20, 'male'])
# 获取字典所有的**键值对**
d = {'age': 20, 'gender': 'male'}
a = d.items()
print(a)
>>>dict_items([('age', 20), ('gender', 'male')])

d = {'age': 20, 'gender': 'male'}
a = dict(d.items())
print(d, a)
>>>{'age': 20, 'gender': 'male'} {'age': 20, 'gender': 'male'}

接下来的皆为引用Egon老师的代码

dict.get()

>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> dic.get('k1')
'jason'  # key存在,则获取key对应的value值
>>> res=dic.get('xxx') # key不存在,不会报错而是默认返回None
>>> print(res)
None  
>>> res=dic.get('xxx',666) # key不存在时,可以设置默认返回的值
>>> print(res)
666 
# ps:字典取值建议使用get方法

dict.pop()

>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> v = dic.pop('k2')  # 删除指定的key对应的键值对,并返回值
>>> dic
{'k1': 'jason', 'kk2': 'JY'}
>>> v
'Tony'

dict.popitem()

>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> item = dic.popitem()  # 随机删除一组键值对,并将删除的键值放到元组内返回
>>> dic
{'k3': 'JY', 'k2': 'Tony'}
>>> item
('k1', 'jason')

dict.update()

# 用新字典更新旧字典,有则修改,无则添加
>>> dic= {'k1':'jason','k2':'Tony','k3':'JY'}
>>> dic.update({'k1':'JN','k4':'xxx'})
>>> dic
{'k1': 'JN', 'k3': 'JY', 'k2': 'Tony', 'k4': 'xxx'}

dict.fromkeys()

>>> dic = dict.fromkeys(['k1','k2','k3'],[])
>>> dic
{'k1': [], 'k2': [], 'k3': []}

dict.setdefault()

# key不存在则新增键值对,并将新增的value返回
>>> dic={'k1':111,'k2':222}
>>> res=dic.setdefault('k3',333)
>>> res
333
>>> dic # 字典中新增了键值对
{'k1': 111, 'k3': 333, 'k2': 222}

# key存在则不做任何修改,并返回改完的字典里的key对应的value值
>>> dic={'k1':111,'k2':222}
>>> res=dic.setdefault('k1',666)
>>> res
111
>>> dic # 字典不变
{'k1': 111, 'k2': 222}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值