Python--6. Python序列结构——字典

3.3 字典

  • 字典中元素的“键”可以是Python中任意不可变数据
  • 不能使用列表、集合、字典或其他可变类型作为字典的“键”
  • “键”不能重复,“值”可以重复

3.3.1 字典的创建与删除

x = dict()  #空字典
x = {}  
keys = ['a','b','c','d']
values = [1,2,3,4]
dictionary = dict(zip(keys,values))
print(dictionary)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
aDict = dict.fromkeys(['name','age','sex'])  #以给定内容为“键”,创建“值”为空的字典
print(aDict)
{'name': None, 'age': None, 'sex': None}

3.3.2 字典元素的访问

  • 格式 : 变量名[‘键’]

    • 若键不存在则抛出异常
    • 可用if语句事先判断或使用try语句异常处理
  • get()方法访问,允许指定该键不存在时返回特定的“值”

aDict = {'a':1,'b':2}
aDict.get('c','Not Exists')
'Not Exists'
import string
import random
x = string.ascii_letters + string.digits
z = ''.join((random.choice(x) for i in range(1000)))  #生成1000个随机字符
d = dict()
for ch in z:  #遍历字符串,统计频次
    d[ch] = d.get(ch,0) + 1
for k,v in sorted(d.items()):  #查看统计结果
    print(k,':',v)
  • 对字典对象直接进行迭代或者遍历是默认是遍历字典的“键”
  • 可使用.items()、.keys()、.values()具体说明

3.3.3 元素的添加、修改与删除

  • 当以指定“键”为下标为字典元素复制时:

    • 若该“键”存在,则修改其“值”
    • 若该“键”不存在,则添加一个新的“键:值”对
  • update()方法可以修改或添加

aDict = {'age':18,'score':[98,97],'name':'xu','sex':'male'}
aDict.update({'a':100,'age':19})
print(aDict)
{'age': 19, 'score': [98, 97], 'name': 'xu', 'sex': 'male', 'a': 100}
  • setdefult()方法 用于返回指定“键”对应的“值”,如果字典中不存在该“键”,就添加一个新元素并设置 该“键”对应的“值”,默认为None
aDict = {'age':18,'score':[98,97],'name':'xu','sex':'male'}
aDict.setdefault('b',200)
print(aDict)
{'age': 18, 'score': [98, 97], 'name': 'xu', 'sex': 'male', 'b': 200}
  • pop()和popitem()方法可以弹出并删除指定的元素
aDict = {'age':18,'score':[98,97],'name':'xu','sex':'male'}
print(aDict.popitem())  #弹出一个元素
print(aDict.pop('score'))
print(aDict)
('sex', 'male')
[98, 97]
{'age': 18, 'name': 'xu'}

3.3.4 标准库collections中与字典有关的类(详见P65)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值