Python学习:字典(dictionary)

异常处理小技巧

异常

​ 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。

​ 异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

捕捉异常可以使用try except语句。

try except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

"""
example01 - 小技巧Author:悾格
Date: 2021/7/30
"""flag = True
while flag:try:   # 把可能出现状况的代码保护起来执行a, b, c = map(int, input('请输入三条边的长度:').split())print(a, type(a))print(b, type(b))print(c, type(c))breakexcept ValueError:   # 如果出现了状况。通过except进行错误捕获,然后执行相应的处理代码print('输入错误,请重新输入!!!')

字典

​ 在这之前我们已经学了列表、元组、字符串、集合,而列表、元组以及集合都是容器型数据类型,但是在当我们想要存储一个人甚至100人的个人信息时就会发现,之前的数据类型不是很理想,一个人的信息不是一个值,而是一堆的变量,如下:

# 列表为例
message = [1001, '悾格', True, '1999-12-31']

​ 相信大家看到这个,都基本上能猜到他们的具体是啥,但是这只是一个人的信息,如果是两个人的,那么在列表中再嵌套一个列表,来表示不同的人,可是我们却不能清楚的知道这个值含义是啥,是谁的。

​ 所以,为了处理这个数据带来的问题,就产生了一个新的可变容器数据类型——字典(dictionary)

字典组成

​ 元素由键和值两部分组成,冒号前面的称为,冒号后面的称为,合在一起叫键值对

student = {'id': 210502,'name': '悾格','sex': '男'
}

​ 如上,就可以看出这组数据是:一个学号为210502,姓名为悾格的男同学。

字典的创建和使用

"""
example02 - 字典的创建和使用Author:悾格
Date: 2021/7/30
"""# 字面量语法
student1 = {'id': 1001,'name': '悾格','sex': True,'birthday': '1999-12'
}
print(student1)
print(len(student1))
# 遍历字典中的键
for key in student1.keys():print(key, student1[key])
print('-' * 20)# 遍历字典中的值
for value in student1.values():print(value)
print('-' * 20)# 遍历字典中的键值对
for key, value in student1.items():print(key, value)
print('-' * 20)# 构造器函数
student2 = dict(id=1002, name='空格', sex=True, birthday='1999-01')
print(student2)
# 生成式(推导式)语法
# list1 = [i for i in range(1, 10)]
# print(list1)
# set1 = {i for i in range(1, 10)}
# print(set1)
dict1 = {i: i ** 2 for i in range(1, 10)}
print(dict1)# 生成器
# gen_obj = (i for i in range(1, 10))
# for value in gen_obj:
#     print(next(gen_obj))

字典的运算

"""
example03 - 字典的运算Author:悾格
Date: 2021/7/30
"""student2 = dict(id=1002, name='悾格', sex=True, birthday='1999-01')
# 字典的索引运算放在赋值运算符的左边
# 如果索引对应的键是存在的,就更新它的值
student2['name'] = '王大娘'
student2['sex'] = False
# 如果字典中没有对应的索引,就增加一组新的“键值对”
student2['address'] = '贵州镇远'
print(student2)print('name' in student2)
print('age' in student2)
print('address' in student2)# 通过get函数通过获取value时,如果ke不存在,不会发生KeyError错误
# 而是得到一个None(空值)
print(student2.get('age'))
print(student2.get('age', 20))
print(student2.get('name', '无名氏'))
# 删除键值对
# del student2['name']
print(student2.pop('name'))
print((student2.get('name', '无名氏')))
# 如果要使用下标(索引)运算,那么必须要保证键一定在
if 'birthday' in student2:print(student2['birthday'])

字典的相关操作

"""
example04 - 字典的相关操作Author:悾格
Date: 2021/7/30
"""dict1 = {'A': 100, 'B': 200, 'C': 300}
dict2 = {'D': 400, 'E': 500, 'A': 600}# 更新(元素的合并或更新)
dict1.update(dict2)
print(dict1)# 删除 ---> 键必须存在,如果不存在会产生KeyError
# del dict1['B']
dict1.pop('B')
# 删除最后一个键
dict1.popitem()
print(dict1)print(dict1.setdefault('C', 800))
print(dict1.setdefault('K', 10000))
print(dict1)# 清空所有
dict1.clear()
print(dict1)

小案例

"""
example05 - 字典中保存了股票信息,完成下面的操作
1,找出股票价格大于100元的股票并创建一个新的字典
2.找出价格最高和最低的股票对应的股票代码
3.按照股票价格从高到低给股票代码排序Date: 2021/7/30
"""stocks = {'AAPL': 191.88,'GOOG': 1186.96,'IBM': 149.24,'ORCL': 48.44,'ACN': 166.89,'FB': 208.09,'SYMC': 21.29
}# stocks1 = {}
# for key, value in stocks.items():
#     if value > 100:
#         stocks1[key] = value
# print(stocks1)
# print(len(stocks))new_stocks = {key: value for key, value in stocks.items() if value > 100}
print(new_stocks)# words = ['apple', 'zoo', 'watermelon', 'zealot', 'internationalization', 'pear']
# print(max(words, key=len))
# print(min(words, key=len))
# words.sort(key=len)
# print(words)
print('-' * 20)
keys = ['AAPL', 'GOOG', 'IBM', 'ORCL', 'ACN', 'FB', 'SYMC']
print(max(stocks, key=stocks.get))
print(min(stocks, key=stocks.get))print(sorted(stocks, key=stocks.get, reverse=True))# print(max(zip(stocks.values(), stocks.keys()))[1])
# _, max_code = max(zip(stocks.values(), stocks.keys()))
# print(max_code)
# print(min(zip(stocks.values(), stocks.keys()))[1])dict1 = {'A': 1, 'B': 2, 'C': 3, 'D': 4}
dict2 = dict(zip(dict1.values(), dict1.keys()))
print(dict1)
print(dict2)

Python学习:字典(dictionary)相关推荐

  1. python dictionary_Python 字典(Dictionary)

    Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在 ...

  2. python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)

    字典 字典的创建 字典的使用 字典的创建 首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等 Python的字典实现使 ...

  3. Python(18)-字典dictionary、集合

    Python高级数据类型-字典 1.字典的定义 2.字典的基本操作:查询,增加,修改,获取 3.字典的统计.合并.清空 4.字典的循环遍历 5.返回最大"值"对应的"键& ...

  4. py 字典添加多个value_# Python 3 # Python 3字典Dictionary(1)

    Python3 字典 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格 ...

  5. Python基础——字典(dictionary)

    文章目录 1.创建字典 2.字典存储类型 1.创建字典 如果说List是有顺序地输出输入的话,那么字典的存档形式则是无需顺序的, 我们来看一个例子: 在字典中,有key和 value两种元素,每一个k ...

  6. python学习笔记--Dictionary

    代码中列出一些dict基本操作 #创建字典 #直接创建,如 dicta={"name":'hilary','age':21,'address':'chengdu'} for x i ...

  7. python学习 字典

    22-9-15 1.格式:大括号{} eg: 2.创建字典: 6种常用方法: 3.增: 1.formkeys: eg: 2: 用此种方法,若键值存在,则修改其value,若不存在,则新增一个键值对. ...

  8. Python学习-字典攻击

    1.导入函数库 import hashlib import itertools#迭代器 import datetime import time itertools:迭代器(生成器). datetime ...

  9. 【Python】字典(Dictionary) items()方法

    猜你喜欢:

  10. python 学习 字典

    类似map cc = {'magic':'1','saber':'2','master':'3','archer':'4',} 添加键-值对 cc['newKey']=newValue 删除键-值对 ...

最新文章

  1. 关于ASP.NET MVC P5中CheckBox的HtmlHelper方法的bug。
  2. XML::Simple与Data::Dumper在Perl中的使用
  3. 知识点讲解一:代理ip中的proxies
  4. 《周四橄榄球之夜》流媒体视频拆解:Twitch VS Amazon Prime
  5. php输出的数组如何存入表单,jquery:如何在jquery中将数组附加到表单请求并将其发送到php...
  6. localStorage.getItem 往浏览器里面储存数据到本地localStorage
  7. 20165307《网络对抗技术》Exp1 PC平台逆向破解
  8. 十大经典排序算法2(Python版本)
  9. Python+tkinter设置Label字体、字号、样式、对齐方式、鼠标形状、响应鼠标事件
  10. web.xml 配置404和500错误的自定义页面
  11. Java Log4j日志简单配置
  12. matlab2c使用c++实现matlab函数系列教程-atan函数
  13. pycharm主题、颜色、字体设置
  14. 层次分析法(AHP)
  15. JQuery——相关练习
  16. 协议篇————3、DUP协议详解
  17. html css笔记zht
  18. Linux命令如何将竖行改成横行,用DECODE和CASE WHEN将多行单列数据改为单行多列数据(即竖向排列改为横向排列)...
  19. 三菱FX5U以太网数据采集方案
  20. 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露

热门文章

  1. Language-Directed Hardware Design for Network Performance Monitoring
  2. 20. zabbix-agent 主动模式案例:使用 percona 监控 mysql
  3. HDU 3001 Travelling (三进制状压dp)
  4. 汽车机油压力传感器在发动机中发挥着怎样的重要作用?
  5. vue经典面试题,帮你准备未来的面试《一》
  6. javascript 的script标签
  7. 四线直流风扇PWM调速探研
  8. Linux下的PCB结构体
  9. 华维单片机编程:仿真软件适合单片机初学者吗
  10. 灰白极简风扁平化广告策划PPT模板