PYTHON知识点学习-字典

这篇具有很好参考价值的文章主要介绍了PYTHON知识点学习-字典。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌈write in front🌈
🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流.
🆔本文由 Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️
📝个人主页:Aileen_0v0🧸—CSDN博客
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:Aileen_0v0🧸的PYTHON学习系列专栏——CSDN博客
🗼我的格言:"没有罗马,那就自己创造罗马~" 

PYTHON知识点学习-字典,python学习,学习,python,开发语言,数据结构

目录

字典的介绍及创建

字典查找key

dictionary&list对比

字典的新增修改删除

理解字典操作的效率

字典的遍历

可哈希的类型


字典的介绍及创建

字典:是存储键值对的数据

键(key)

值(value)

根据 key 能够快速找到 value  ( 映射关系 )

例如: 学号 => 同学        名字 => 人

在 python 的字典中,可以同时包含佷多个键值对.

同时要求这些键,不能重复!

#1.创建字典
a = {}
print(type(a))
b = dict()
print(type(b))
#2.创建字典的同时设置初始值.
a ={"id":1 , "name" : "zhangsan"}

 字典a中,包含两个键值对.

(1)"id":1  key 就是"id",value 就是 1

(2)"name":  "zhangsan"  key 就是"name", value 就是"zhangsan"

一个字典中的  key  的类型 不一定都一样

一个字典中的  value  的类型  也不必都一样~

综上,key 和 value 对类型无约束

a ={
    "id":1 ,
    "name" : "zhangsan",
    }

最后一个键值对的逗号可写可不写,其它的必须加上逗号.

字典查找key

#1. 使用 in 来判定某个 key 是否在字典中存在.
a ={
    "id":1,
    "name":"zhangsan"
}

print("id" in a)
print("classId" in a)

# in 只是判定 key 是否存在, 和 value 无关!
print("zhangsan" in a)

# not in 来判定 key 在字典中不存在
print("id" not in a)
print("classId" not in a)

# 运行结果:
# True
# False
# False
# False
# True
#2. 使用 [ ] 来根据 key 获取到 value
a ={
    "id" : 1,
    "name" : "zhangsan",
    100 : "list"
}

print(a["id"])
print(a["name"])
print(a[100])     #注意这里表示的是key100
print(a["classId"])

# # 运行结果:
# 1
# zhangsan
# list
# # KeyError: 'classId'#因为找不到

在 Python 中,可以通过多层索引来查找嵌套字典中最里面的值

举个例子,假设有以下嵌套字典

my_dict = {
    'name': 'John',
    'age': 30,
    'contacts': {
        'email': 'john@example.com',
        'phone': {
            'mobile': '123-456-7890',
            'home': '098-765-4321'
        }
    }
}

要查找最里面的电话号码,可以使用以下代码:

phone_number = my_dict['contacts']['phone']['mobile']
print(phone_number)  # 输出: '123-456-7890'

另外,如果不确定某个键是否存在,可以使用 get 方法来避免出错

phone_number = my_dict.get('contacts', {}).get('phone', {}).get('mobile')
print(phone_number)  # 输出: '123-456-7890'

如果某一层嵌套字典不存在,那么 get 方法就会返回一个空字典 {},这样就可以继续向下查找了。

dictionary&list对比

PYTHON知识点学习-字典,python学习,学习,python,开发语言,数据结构

字典的新增修改删除

#1.在字典中新增元素,使用[ ] 来进行.
a = {
    "id" : 1,
    "name" : "zhangsan",
}

# 这个操作就是往字典里插入新的键值对.
a["score"] = 90
print(a)

#2. 在字典中, 根据 key 修改 value, 也是使用 [ ]来进行的~
a["score"] = 100
print(a)

#3. 使用 pop 方法, 根据 key 来删除键值对~
a.pop("name")
print(a)
# 运行结果:
# {'id': 1, 'name': 'zhangsan', 'score': 90}
# {'id': 1, 'name': 'zhangsan', 'score': 100}
# {'id': 1, 'score': 100}

PYTHON知识点学习-字典,python学习,学习,python,开发语言,数据结构

可以通过Python中的 update() 方法替换字典中的键值对。该方法接收一个字典作为参数,将该字典中的键值对替换到原字典中对应的键上。

以下是一个简单的示例代码:

dict1 = {"a": 1, "b": 2, "c": 3}
dict2 = {"b": 4, "d": 5}

dict1.update(dict2)

print(dict1)

输出结果为:

{'a': 1, 'b': 4, 'c': 3, 'd': 5}

可以看到,字典dict2中的键值对已经被替换到了dict1中对应的键上,同时新增的键值对也被添加到了dict1中。如果键已经存在,则新值将取代旧值

小结:字典的各种操作,都是针对 key 来进行的!!
        从而,新增,删除, 获取value,修改value.....

理解字典操作的效率

遍历指的是:能够把一个可迭代对象,里面包含的元素依次取出,并进行一些操作.整个过程要求不重不漏.

字典被设计出来的初衷,不是为了遍历,而是为了增删查改.

字典是 哈希表,进行增删改查操作,效率度非常高!!

字典遍历效率就要一些.

哈希表 这个结构被设计的非常巧妙,能够以"常数级"时间复杂度来完成增删改查~

"常数级":无论字典中有多少元素~

新增,修改,查找 操作都是固定时间,不会因为元素多了,操作就慢了~

❗❗❗哈希表非常重要,后面会继续深入学习发博文

字典的遍历

#1 直接使用 for 循环来遍历字典
a = {
    "id": 1,
    "name":"zhangsan",
    "score":90,
}

for key in a:
    print(key,a[key])

# 运行结果:
# id 1
# name zhangsan
# score 90

在C++ 或者 Java 中,哈希表里储存的键值对是无序的!

但在 Python 中还不一样~

Python 中做了特殊处理~~能够保证 遍历出来的顺序 和 插入进来的顺序相同~~

Python中的字典,不是单纯的一个哈希表

keys 获取字典中的所有 key

values 获取字典中的所有value

items 获取字典中的所有键值对~

a = {
    "id": 1,
    "name":"zhangsan",
    "score":90,
}

print(a.keys())
print(a.values())
print(a.items())

# 运行结果:
# dict_keys(['id', 'name', 'score'])
# dict_values([1, 'zhangsan', 90])
# dict_items([('id', 1), ('name', 'zhangsan'), ('score', 90)])

keys 和 values 返回的结果,看起来像列表,又不完全是~~

自定义类型~~

使用的时候也可以把它当作列表来使用~~

items返回的 首先是一个列表一样的结构,里面每个元素又是一个元组,元组里面包含了键和值.

so 可以利用类似于自定义读取利用for方法去读取它的值一样去遍历取出,如下:

a = {
    "id": 1,
    "name":"zhangsan",
    "score":90,
}

for key,value in a.items():
    print(key,value)

    # 运行结果:
    # id 1
    # name zhangsan
    # score 90

可哈希的类型

哈希的概念
哈希技术是一种单向加密技术,也就是说,它可以将任何长度的原始消息转换成一个特定长度的哈希值,但无法从哈希值反推出原始消息。

哈希函数通常具有以下特点

- 压缩性:无论输入消息的长度多长,产生的哈希值长度固定。

- 易计算性:计算哈希值的操作很容易,即使处理的数据量很大。

- 抗碰撞性:难以找到两个不同的输入消息,其哈希值相同,也称为“哈希冲突”。

哈希技术近年来在越来越多的领域中得到了广泛的应用,比如密码学中的数字签名、身份认证、密码存储等,还有数据完整性校验、指纹识别、电子商务中的信任机制等

在 python 里专门提供了一个 hash 函数~

print(hash(0))
print(hash(3.14))
print(hash("hello"))
print(hash(True))

# # 运行结果:
# 0
# 322818021289917443
# -5961696303172855508
# 1

通过上面代码运行结果可知:整数,浮点数,字符串,布尔值,元组以计算哈希值.--->可作为key

# 有的类型是不能计算哈希值的.
print(hash([1,2,3]))

# 运行结果:
# TypeError: unhashable type: 'list'
print(hash({}))

# # 运行结果:
# # TypeError: unhashable type: 'dict'

通过上面代码运行结果可知,列表,字典,不可以哈希.

summary:不可变(整数,浮点数,字符串,布尔值,元组)的对象可哈希,

                可变(字典,列表)的对象不可哈希

                 字典,列表,元组 在python中是非常常用的 内置类型~

                 相比于 int, str, float...

                 它们内部可以再包含其它元素~

                 它们属于 容器/集合类~

🍒字典的知识点就分享到这里啦~🍒

🍒喜欢就一键三连支持一下吧~🍒

🍒谢谢家人们!🍒文章来源地址https://www.toymoban.com/news/detail-696588.html

到了这里,关于PYTHON知识点学习-字典的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 后悔没早学这份Python神级文档!2023最新入门到进阶核心知识点学习文档!

    如今学 Python 的程序员越来越多,甚至不少人会把 Python 当作第一语言来学习。不过尽管 Python 功能强大上手轻松,但并不代表它的学习曲线不陡峭,得来全不费工夫。 当推开 Python 的大门,你会发现 Python 入门简单但精通很难。看似语法记得滚瓜烂熟,但一进入实际项目,就

    2024年02月06日
    浏览(36)
  • C语言指针入门学习、知识点梳理(四)

    本篇内容:指针星号的三种含义以及指针在函数调用时,与实参、形参的变量传递关系,如何通过被调函数修改主调函数普通变量的值。 传送门: C语言指针入门学习、概念梳理(一) C语言指针入门学习、概念梳理(二) C语言指针入门学习、知识点梳理(三) C语言指针入门

    2024年02月09日
    浏览(31)
  • 【python知识点】锦集

    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/132368704 出自【进步*于辰的博客】 注:本文可能不适合 0-Python 基础的博友,因为对于各类知识点,我阐述的宗旨是“ 阐明使用细节 ”,而不是基础知识。 细节、

    2024年02月12日
    浏览(30)
  • Python函数知识点

         函数是指一段可以直接被另一段程序或代码引用的程序或代码,也叫做子程序、方法。现阶段可以理解成函数是带名字的代码块。 函数需要先定义再使用!     举个例子来说,想要判断一个三角形是不是直角三角形,需要用到勾股定理,只有先明确的定义出勾股定理是

    2023年04月09日
    浏览(34)
  • Python基础知识点入门

    初学Python时,以下是一些基础知识点和示例,以帮助你建立坚实的编程基础。 1. 变量和数据类型 Python中的变量用于存储数据。以下是一些常见的数据类型和示例: 整数(int) 浮点数(float) 字符串(str) 布尔值(bool) 2. 列表(List) 列表是一种有序的数据结构,可以存储

    2024年02月07日
    浏览(39)
  • Python小姿势 - 知识点:

    知识点: Python的字符串格式化 标题: Python字符串格式化实例解析 顺便介绍一下我的另一篇专栏, 《100天精通Python - 快速入门到黑科技》专栏 ,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造。 基础知识篇以理论知识为主 ,旨在帮助没有语言基础的

    2024年02月01日
    浏览(34)
  • Python爬虫基础知识点

    Python爬虫是使用Python编写的程序,可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合,如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢? 以下是Python爬虫的基础知识:

    2024年02月08日
    浏览(41)
  • Python小姿势 - # Python相关技术知识点

    Python相关技术知识点 标题 在Python中如何处理文件 如果你要处理文件,那么在Python中你需要使用到os模块中的一些方法。 首先,你需要使用os.path.exists方法来判断文件是否存在: ```python if os.path.exists(\\\'file.txt\\\'): print(\\\'文件存在\\\') else: print(\\\'文件不存在\\\') ``` 如果你要创建一个文件

    2024年02月04日
    浏览(33)
  • Python知识点(史上最全)

    Python期末考试知识点(史上最全) python简介 type()不会认为子类是一种父类类型。 isinstance()会认为子类是一种父类类型 基础语法 运算符: 算术运算符: 多了一个**,代表 幂方 5**5 就是5的5次方 还多了一个 // 整数除法 逻辑运算符: and,or,not 与,或,非 赋值运算符: 没有+

    2024年02月02日
    浏览(28)
  • Python知识点大全(非常详细)

    1、Python的两种编程⽅式:交互式(随输随运⾏)和⽂件式(主要⽅式;批量运⾏出结果) 2、⼀切皆对象,每个对象由标识(id())、类型(type())和值(print())标识。 3、Python采⽤ 基于值的内存管理 ,不同变量赋值为同⼀个值,ID⼀样,但是只适⽤范围在-5⾄256的整数和短字

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包