Python字典类型的操作

来自CloudWiki
跳转至: 导航搜索

字典类型的操作

添加元素

>>> t={}
>>> t["201804"]="小新"

删除元素

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

查看元素

>>> t["201804"]

修改元素

>>> t["201804"]="小红"

判断是否存在

  • 字典类型也支持保留字in,用来判断一个键是否在字典 中。如果在则返回True,否则返回False:
{'02': '小红'}
>>> '02' in d
       
True
>>> '01' in d
       
False

遍历字典

与其他组合类型一样,字典可以遍历循环对其元素进行 遍历,

基本语法结构如下:

for <变量名> in <字典名> :
  <语句块> 

for循环返回的变量名是字典的索引值。如果需要获得键 对应的值,可以在语句块中通过get()方法获得


  • 用for来进行遍历:
>>> d={"01":"小明","02":"小红","03":"小白"}
       
>>> for k in d:
       print(k,d.get(k))

       
01 小明
02 小红
03 小白
>>> 
for i in  dictMenu.values():
    print(i)

for i in  dictMenu.keys():
    print(i)

for i in  dictMenu.items():
    print(i)

for i in  dictMenu.items():
    print(i)

常用操作函数

  • dict() 生成一个空字典
  • len()给出字典元素的个数
  • max()、min() 返回字典d中最小或最大索引值。


>>> d={"01":"小明","02":"小红","03":"小白"}
       
>>> len(d)
       
3
>>> min(d)
       
'01'
>>> max(d)
       
'03'
>>> d = dict()
       
>>> print(d)
       
{}

常用操作方法

概述

字典类型存在一些操作方法,使用语法形式是:

<字典变量>.<方法名称>(<方法参数>)

d.keys() 返回所有的键信息

d.values() 返回所有的值信息

d.items() 返回所有的键值对

d.get(key, default) 键存在则返回相应值,否则返回默认值

d.pop(key, default) 键存在则返回相应值,同时删除键值对,否则返回默认值

d.popitem() 随机从字典中取出一个键值对,以元组(key, value)形式返回

d.clear() 删除所有的键值对

获取所有键和值

d.keys()返回字典中的所有键信息。

  • d.keys()返回字典中的所有键信息。
>>> d={"01":"小明","02":"小红","03":"小白"}
       
>>> d.keys()
       
dict_keys(['01', '02', '03'])
>>> list(d.keys())
       
['01', '02', '03']
  • d.values()返回字典中的所有值信息,用dict_values表示,可以将其转换为列表类型
>>> d.values()
       
dict_values(['小明', '小红', '小白'])
>>> list(d.values())
       
['小明', '小红', '小白']
  • d.items()返回字典中的所有键值对信息,用dict_items表示,可以将其转换为列表类型
>>> d.items()
       
dict_items([('01', '小明'), ('02', '小红'), ('03', '小白')])
>>> list(d.items())
       
[('01', '小明'), ('02', '小红'), ('03', '小白')]

返回单个键和值

  • 字典对象提供了一个get()方法用来返回指定“键”对应的“值”,并且允许指定该键不存在时返回特定的“值”
  • d.pop(key,defaults)根据键信息查找并取出值信息,如果key存在则返回相应值,否则返回默认值
  • 相比于get(),pop()在取出相应值之后,从字典中删除对应的键值对。
>>> d.get('01')
       
'小明'
>>> d.get('04','不存在')#这里指定,如果被查找的不存在,就返回‘不存在’这个字符串
       
'不存在'
>>> d.pop('01')
       
'小明'
>>> d.items()
 
dict_items([('02', '小红'), ('03', '小白')])

  • d.popitem()随机从字典中取出一个键值对。
>>> print(d.popitem())
       
('03', '小白')
>>> d

删除键和值

  • 此外,如果希望删除字典中某一个元素,可以使用 Python保留字del
> >> d       
{ '01': '小明', '02': '小红'}
>>> del d['01']
       
>>> d
  • d.clear() 来删除字典中所有键值对。

练习

根据以上知识,打印字典的键和值:

dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
sum =0  
for i in  dictMenu.values():
    print(i)

for i in  dictMenu.keys():
    print(i)

for i in  dictMenu.items():
    print(i)

for i in  dictMenu.items():
    print(i)

练习

练习1 教学管理系统

>>> #建立一个空字典 s
>>> #向字典中添加键值对 张兰:99
>>> #向字典中添加键值对 刘斌 88
>>> #向字典中添加键值对 赵红 90
>>> #删除键值对 赵红 90
>>> #查看刘斌的分数
>>> #修改刘斌的分数为98
>>> #判断张兰的成绩是否在字典s里
>>> #遍历打印全部成绩

练习2 计算餐厅消费

练习:.请补充横线处的代码。dictMenu中存放了你的双人下午套餐(包括咖啡2份和点心2份)的价格,让Python帮忙计算并输出消费总额。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
___①_  _ 
for i in ____②____:
    sum +=  i

练习3 统计学校类型

  • 列表 ls 中存储了我国 39 所 985 高校所对应的学校类型,请以这个列表为数据变量,完善 Python 代码,统计输出各类型的数量。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
ls = ["综合", "理工", "综合", "综合", "综合", "综合", "综合", "综合", "综合", "综合",\
      "师范", "理工", "综合", "理工", "综合", "综合", "综合", "综合", "综合","理工",\
      "理工", "理工", "理工", "师范", "综合", "农林", "理工", "综合", "理工", "理工", \
      "理工", "综合", "理工", "综合", "综合", "理工", "农林", "民族", "军事"]
‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输入格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

该题目没有输入‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

输出格式‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

按 ls 中默认顺序输出‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

综合:1
理工:2
师范:3
农林:4
民族:5
军事:6‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬