python:字典(dictionary)

字典是可变列表类型,能够存储任意类型的对象,如字符串列表元组等。

字典由键和值对应的键值对组成,字典也被称作关联数组或哈希表。

1. 字典的创建

1.变量名 = {}
2.变量名 = dict()
3.变量名 = {键:值,键:值…}
4.变量名 = dict( {键:值,键:值…} )
5.变量名 = dict(键 = 值,键 = 值…)
6.变量名 = dict( [ (键,值),(键,值),(键,值)… ] )
dict( [ [键,值],[键,值],[键,值]… ] )
dict( ( (键,值),(键,值),(键,值)… ) )
7.变量名 = dict( zip( ( 键,键,键…),(值,值,值…) ) )

2. 添加键值对

1. 直接添加
格式:字典名[‘键名’] = 值

dic = {'name':'张三','age':18}
dic['address']='北京'
print(dic)
# >>>{'name': '张三', 'age': 18, 'address': '北京'}

2. 利用setdefault()函数添加
格式:字典名.setdefault(‘键名’,‘值’)

dic = {'name':'张三','age':18}
dic.setdefault('address','北京')
print(dic)
# >>>{'name': '张三', 'age': 18, 'address': '北京'}

3. update()
①:
功能:添加键值对
格式:字典名.update(键=值)
返回:None
②:
功能:添加键值对
格式:字典名.update( {键:值} )
返回:None

3. 删除键值对

1. pop()
功能:删除指定的键值对
格式:字典名.pop(‘键名’)
返回:删除的键的值

dic = {'name':'张三','age':18}
a = dic.pop('name')
print(dic)
print(a)
# >>>{'age': 18}
# >>>张三
  1. 带初始值的pop()
    功能:删除指定的键值对,如果该键值对不存在则返回默认值。
    格式:字典名.pop(‘键名’,‘初始值’)
    返回:如果键存在返回删除的键的值,否则返回初始值
  2. popitem()
    功能:随机删除一对键值对,一般删除末尾的键值对。
    格式:字典名.popitem()
    返回:以元组的类型返回删除的键值对

4. 查看键在字典中是否存在

1. in函数

dic = {'name':'张三','age':18,'address':'北京','score':'99'}
a = "张三" in dic
print(a)
#>>>False

2. get()
功能:查询键在字典中是否存在,如不在返回自定义值
格式:字典名.get(‘指定的键名’,自定义值)
返回:键存在返回对应的值,不存在返回自定义值

5. 字典改变键名

1. 推荐
在pop()函数执行的瞬间,键对应的值依旧存在未删除,只需要键对应该值就可。不过改变之后的字典的位置和之前有不同。

dic = {'a':1,'b':2}
dic['c'] = dic.pop('a')
print(dic)
# >>>{'b': 2, 'c': 1}

2.

该方式和第一种几乎没有差别,缺点是更麻烦。

dic = {'a':1,'b':2}
dic.update({'c':dic.pop('a')})
print(dic)
#>>> {'b': 2, 'c': 1}

3.

dic = {'a':1,'b':2}
dic['c'] = dic['a']
del dic['a']
print(dic)
#>>> {'b': 2, 'c': 1}

这三种方式原理相同,推荐使用第一种方法。

6. 传入序列作为字典的键名

fromkeys()函数:
功能:传入序列作为字典的键名,并给这些键赋予同一个值。
格式:字典名 = dict.fromkeys(序列,值)
返回:创建好的字典

a = dict.fromkeys((1,2,3,4,5,6,7,8,9),11)
print(a)
# >>>{1: 11, 2: 11, 3: 11, 4: 11, 5: 11, 6: 11, 7: 11, 8: 11, 9: 11}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值