【Python21天学习挑战赛】字典 && 小数据池

简介: 【Python21天学习挑战赛】字典 && 小数据池

活动地址:CSDN21天学习挑战赛

开头一叙:

无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍。跟着大佬,让python知识从入门到精通。

字典—dict

作用:存储数据的,存储大量数据,可变的数据类型,无序的;比列表快。将数据和数据之间进行关联。

字典定义
 dic={"孙悟空":80,"唐僧":100,"猪八戒":89,True:123,(12,2,3):["dada","憨憨"]} #字典中逗号分割是一个元素
 # "孙悟空"(键):80(值)       --键值对
 print(dic)
{'孙悟空': 80, '唐僧': 100, '猪八戒': 89, True: 123, (12, 2, 3): ['dada', '憨憨']}
  • 字典的键:必须是可哈希的,也就是不可变的数据类型(字符串就是不可变的数据类型)–避免哈希冲突使用开放寻址法。 字典的键要求唯一,若是有重复的后边的值将前面的值覆盖
  • 字典的值:可以任意
  • 和列表的区别:
  • 列表是有序的对象集合
  • 字典是无序的对象集合
字典的操作:增、删、改、查

1、增:

(1)暴力添加

dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
dic["白骨精"]=78   #暴力添加
print(dic)
{'孙悟空': 80, '唐僧': 100, '猪八戒': 89, '白骨精': 78}

(2)dic.setdefault():若白骨精这个键去字典查询,如果不存在执行添加,存在就不添加了

dic.setdefault("孙悟空",78)
print(dic)
#   输出:(1){'孙悟空': 80, '唐僧': 100, '猪八戒': 89}
dic.setdefault("白骨精",78)
print(dic)
#   输出: (2){'孙悟空': 80, '唐僧': 100, '猪八戒': 89, '白骨精': 78}

2、删

(1)方式1、通过键值对的键去删除键

dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
del dic["孙悟空"]
print(dic)
{'唐僧': 100, '猪八戒': 89}

(2)通过键值对的键去删除键,有返回值,返回的是被删除的值

print(dic.pop("孙悟空") )
#   输出:80
print(dic)
# # 输出:{'唐僧': 100, '猪八戒': 89}

(3)dic.clear()

dic.clear()
print(dic)
# 输出:{}

3、改

(1)当字典中没有某个键值对的时候就是添加,存在的话就是修改

dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
dic["孙悟空"]="孙猴子" #当字典中没有某个键值对的时候就是添加,存在的话就是修改
print(dic)
# 输出:{'孙悟空': '孙猴子', '唐僧': 100, '猪八戒': 89}

(2)dic.update()

dic.update({"黄梅眉大王":89,"观音":56,"孙悟空":100})
print(dic)
# 输出:{'孙悟空': 100, '唐僧': 100, '猪八戒': 89, '黄梅眉大王': 89, '观音': 56}
dic1={"黄梅眉大王":89,"观音":56,"孙悟空":100}
dic1.update(dic)
print(dic1)
# 输出:{'黄梅眉大王': 89, '观音': 56, '孙悟空': 80, '唐僧': 100, '猪八戒': 89}

4、查

dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
# for i in dic:       #循环获取的是字典中每个键值对的键
#     print(i)
print(dic.get("孙悟空"))  #通过键值对中的键获取键值对的值
print(dic.get("沙僧"))    #若字典没有对应的键,返回None
#   输出:80
#        None
字典的其他操作
dic={"孙悟空":80,"唐僧":100,"猪八戒":89}
# for i in dic:
#     print(i,dic.get(i)) #获取所有键值对
print(dic.keys()) #高仿列表,获取所有的键,支持for循环遍历,不支持索引
# 输出:dict_keys(['孙悟空', '唐僧', '猪八戒'])
print(dic.values()) #高仿列表,获取所有的值
# 输出:dict_values([80, 100, 89])
print(list(dic.values()))#  转换成列表
#   输出:[80, 100, 89]
print(dic.items())
for i in dic.items():
    print(i)
dict_items([('孙悟空', 80), ('唐僧', 100), ('猪八戒', 89)])
('孙悟空', 80)
('唐僧', 100)
('猪八戒', 89)

字典的嵌套:

dic={1001:["刘备","关羽","张飞"],
     1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},
     1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},
     1004:{"韦小宝":[{"教主夫人":["教主"]},{"阿柯":"刺客"},{"双儿","天地会"},{"爱新觉罗建宁":"公主"}]}
     }
# 找出教主
print(dic[1004]["韦小宝"][0]['教主夫人'][0])
# 找出熊二
print(dic[1002]["汪峰"]["前妻2"][1])

小数据池

代码块

1、定义:一个模块,一个函数,一个类,一个文件等都是一个代码块。

在python解释器中,每一行代码就是一个代码块

is 与 == 区别

1、== 是判断两边的值是否相等

a=10
b=10
print(a==b)
# 输出:True

2、is是比较两边的地址内存是否相等

a=10
b=10
print(a is b)   #is基于内存地址进行判断
# 输出:True
小数据池

1、什么是小数据池

答:小数据池,也称为小整数缓存机制,或者称为驻留机制等等

针对整数:.

答:Python自动将-5~256的整数进行了缓存,当你将这些整数赋值给变量时,并不会重新创建对象,而是使用已经创建好的缓存对象。

针对字符串:

答:在同一代码块下,只有内容相同就采用相同的内存地址,乘法的时候总长度不能超过20,乘法的时候中文,特殊符合乘以0或者1

针对布尔值:

在同一代码块下,只有内容相同就采用相同的内存地址

相关文章
|
1天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
6 1
|
2天前
|
开发者 Python
【Python 基础】递推式构造字典(dictionary comprehension)
【5月更文挑战第8天】【Python 基础】递推式构造字典(dictionary comprehension)
|
2天前
|
小程序 程序员 开发者
Python学习心得——小白的成长之路
Python学习心得——小白的成长之路
9 0
|
2天前
|
存储 JSON 数据挖掘
python序列化和结构化数据详解
python序列化和结构化数据详解
10 0
|
3天前
|
数据采集 数据可视化 数据挖掘
Python 与 PySpark数据分析实战指南:解锁数据洞见
Python 与 PySpark数据分析实战指南:解锁数据洞见
|
3天前
|
数据采集 数据处理 开发者
Python 中的数据处理技巧:高效数据操作的艺术
Python 在数据处理方面表现卓越,为开发者提供了丰富的工具和库以简化数据操作。在本文中,我们将探讨 Python 中数据处理的一些技巧,包括数据清洗、数据转换以及优化数据操作的最佳实践。通过掌握这些技巧,您可以在 Python 中更加高效地处理和分析数据。
|
3天前
|
网络安全 Python
网安之python基础学习练习(2-3)
本篇博文是关于网络安全课程中Python编程的学习实践总结。分享关于两个练习题目及其解决方案。第一个题目要求用户输入姓名并选择一项武技,使用for循环和if判断实现。第二个题目是删除列表中特定值(如'cat')的所有元素,作者展示了两种方法,包括列表推导式和常规循环删除。接下来,文章还介绍了如何编写一个函数,随机生成一副扑克牌(除大小王),并返回一张随机抽取的牌。
|
3天前
|
存储 网络安全 索引
网安之python基础学习练习(1)
本篇博文是关于网络安全课程中Python编程学习的总结,主要内容包括:1) 常见数据类型的回顾和应用,如数字(整数、浮点数、复数)、字符串、列表、元组、集合、字典和布尔类型;2) 数据类型的实例操作,展示如何创建和使用这些类型;3) 数值类型之间的加、减、乘、除和模运算;4) 列表和元组的索引访问;5) 字典的修改,如查看键和值,以及更新值。文章强调了基础知识的重要性,并以“自满必定失败,骄傲必定后悔”作为每日一言。
|
4天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
4天前
|
开发者 索引 Python
Python中调整两列数据顺序的多种方式
Python中调整两列数据顺序的多种方式
20 0