当前位置: 首页 > news >正文

python中字典(dict)原理及其操作

原理

Python中的字典(Dictionary)是一种基于哈希表(Hash Table)的实现,提供了高效的键值对(Key-Value Pair)存储和访问机制。了解字典的工作原理有助于更好地理解其性能特性以及为什么在某些情况下使用字典会非常高效。

哈希表的基本原理

  1. 哈希函数:哈希表依赖于哈希函数来将键(Key)转换为存储位置的索引。理想情况下,哈希函数应该将不同的键均匀分布到哈希表的地址空间中,以减少冲突(两个键映射到同一位置)的可能性。

  2. 键的唯一性:在字典中,键必须是唯一的。如果尝试使用已存在的键来存储新的值,旧的值将被新的值覆盖。

  3. 冲突解决:当两个键映射到同一个位置时,会发生冲突。Python字典使用开放寻址法(Open Addressing)和二次探测(Quadratic Probing)等技术来解决冲突。

字典的性能特性

  • 时间复杂度:对于大多数操作(包括查找、插入和删除),Python字典的平均时间复杂度为O(1)。然而,在最坏的情况下(例如,当哈希函数导致大量冲突时),这些操作的时间复杂度可能会恶化到O(n)。但是,通过使用良好的哈希函数和动态调整哈希表的大小,Python尽量保证字典操作的高效性。

  • 动态调整大小:当字典中的元素数量增加,导致装载因子(存储的元素数量与哈希表大小的比值)超过某个阈值时,Python会增加哈希表的大小并重新哈希所有的键。这个过程称为“重新哈希”(Rehashing),虽然会暂时增加操作的开销,但可以保持字典操作的长期效率。

字典的特性

  • 无序:在Python 3.6中,字典的有序性首次作为CPython实现的一个细节被引入,虽然它在实践中确实是有序的,但当时官方并不保证所有Python实现都会有这个特性。从3.7版本开始,这一特性成为了Python语言的官方规范的一部分,因此在所有遵循该规范的Python实现中,字典都是有序的。

    这一变化使得在需要维护元素顺序的情况下,开发者不再需要使用collections.OrderedDict,因为普通的dict已经可以满足需求。这不仅简化了代码,也改善了性能,因为标准的dict类型在Python 3.7及更高版本中被优化以更高效地存储和访问元素。

    • 验证

      # 创建一个空字典
      ordered_dict = {}# 向字典中添加一些键值对
      ordered_dict['banana'] = 1
      ordered_dict['apple'] = 2
      ordered_dict['pear'] = 3
      ordered_dict['orange'] = 4# 打印字典中的项,查看是否按插入顺序输出
      for key in ordered_dict:print(key, ordered_dict[key])# 创建两个具有相同键值对但插入顺序不同的字典
      dict1 = {'a': 1, 'b': 2, 'c': 3}
      dict2 = {'b': 2, 'a': 1, 'c': 3}# 比较字典
      print(dict1)
      print(dict2)
      print(dict1 == dict2)  # 输出: True
      
    • 尽管dict1dict2的插入顺序不同,但它们被认为是相等的,因为它们包含相同的键值对。这证明了字典的比较不考虑键值对的插入顺序,但字典本身在内部是维护了插入顺序的。

  • 键的数据类型:作为键的对象必须是不可变的,比如整数、浮点数、字符串、元组。这是因为只有不可变对象才能保证在整个生命周期中哈希值不变,从而保持字典的完整性。

了解这些原理有助于开发者更有效地使用Python字典,尤其是在处理大量数据和对性能有较高要求的场景中。

操作

Python 中的字典(dict)是一种可变容器模型,可以存储任意类型对象,如字符串、数字、元组等。字典中的每个元素都是一个键值对。这里介绍一些基本的字典操作:

创建字典

# 空字典
my_dict = {}# 带有数据的字典
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

访问元素

print(my_dict['name'])  # 输出: John# 使用 get 方法,如果键不存在返回 None 而不是抛出异常
print(my_dict.get('age'))  # 输出: 30

添加或修改元素

# 添加新键值对
my_dict['email'] = 'john@example.com'# 修改已有键的值
my_dict['age'] = 31

删除元素

# 删除特定的键值对,使用 del 关键词:
del my_dict['city']# 使用 pop 方法删除并返回被删除值:
removed_value = my_dict.pop('email')
print(removed_value)  # 输出被删除的值:john@example.com# 清空整个字典:
my_dict.clear()

检查键是否存在

if 'name' in my_dict:print("Name is present in the dictionary")

遍历字典

遍历所有键:

for key in my_dict.keys():print(key)

遍历所有值:

for value in my_dict.values():print(value)

同时遍历键和值:

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

字典长度

获取包含多少个键值对:

len(my_dict)

复制一个字典

创建当前字典的浅拷贝:

new_mydict = my_dic.copy()或者使用 dict() 函数:
new_mydict2 = dict(my_dic)

以上就是 Python 字典中常用操作。Python 的 dict 类型提供了丰富而强大的方法来处理映射关系,并且由于其底层实现为哈希表,因此在访问和添加数据时具有非常高效率。

高级操作

Python 字典的高级操作涉及更复杂的数据处理和字典操作技巧。以下是一些有用的高级字典操作:

字典推导式

字典推导式(Dictionary Comprehension)是一种简洁地创建字典的方法,类似于列表推导式。

# 通过键值对序列创建字典
keys = ['name', 'age', 'city']
values = ['John', 30, 'New York']my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)  # 输出: {'name': 'John', 'age': 30, 'city': 'New York'}

合并两个字典

在 Python 3.5+ 中,可以使用 {**d1, **d2} 的语法合并两个字典。在 Python 3.9+ 中,还可以使用 | 操作符,表达式中后出现的字典中的键值对将覆盖先前字典中的键值对。

dict1 = {'name': 'John', 'age': 30}
dict2 = {'city': 'New York', 'email': "john@example.com"}merged_dict = {**dict1, **dict2}
# 或者在 Python 3.9+
merged_dict_39 = dict1 | dict2print(merged_dict)

使用 collections.defaultdict

Python中的defaultdict和普通的dict都是字典类型,用于存储键值对。但是,它们之间有一个主要的区别:

当你试图访问dict中不存在的键时,Python会抛出一个KeyError。但是,如果你使用defaultdict,并试图访问一个不存在的键,它会首先为这个键生成一个默认值,然后返回这个默认值。这个默认值是通过传递给defaultdictdefault_factory函数生成的。

from collections import defaultdictddict = defaultdict(list)# 当尝试访问不存在的键时,默认初始化为空列表,并不会抛出 KeyError 异常。
ddict['a'].append(1)
ddict['a'].append(2)
print(ddict) # 输出: defaultdict(<class ‘list’>, {'a': [1, 2]})# 创建一个默认值为int的defaultdict
d = defaultdict(int)
# 访问一个不存在的键
print(d['key']) # 输出 0
# 当我们试图访问不存在的键 'key' 时,`defaultdict`首先调用`int()`(没有任何参数)来生成一个默认值(0),然后返回这个值。

这个特性使得defaultdict在某些情况下非常有用,例如,当你需要一个字典来存储列表,且希望所有的键都默认关联一个空列表时,你可以使用defaultdict(list)

使用fromkeys生成默认值的新字典

fromkeys() 是一个类方法,用于创建一个新字典,其中包含指定的键,每个键对应的值都是相同的初始值。这个方法通常用于初始化字典。

基本语法:

dict.fromkeys(seq[, value])
  • seq:键列表。
  • value:可选参数,所有键对应的初始值,默认为 None。

示例:

# 使用 fromkeys 创建一个新字典,所有键的初始值为 None
new_dict = dict.fromkeys(['a', 'b', 'c'])
print(new_dict)  # 输出: {'a': None, 'b': None, 'c': None}# 使用 fromkeys 创建一个新字典,并设置所有键的初始值为 0
new_dict_with_value = dict.fromkeys(['x', 'y', 'z'], 0)
print(new_dict_with_value)  # 输出: {'x': 0, 'y': 0, 'z': 0}

这种方式非常适合快速初始化具有固定或默认值的字典。

使用 collections.OrderedDict

从 Python 3.7 开始,所有普通的 dict 都保持插入顺序。但是,在早期版本中或者当需要依赖顺序相关功能时(如移动元素到末尾),可以使用 OrderedDict

from collections import OrderedDictodict = OrderedDict([('name', 'John'), ('age', 30)])
odict['city'] = "New York" # 添加到末尾
print(odict) # 输出: OrderedDict([('name', ‘John’), ('age’, 30), ('city’, ‘New York')])

使用 zip() 合并键和值列表为字典

如果你有两个分别代表键和值的列表,你可以使用 zip() 函数轻松合并它们为一个字典。

keys_list = ["a", "b", "c"]
values_list =[1, 2, 3]combined_dict= dict(zip(keys_list , values_list))
print(combined_dict) # 输出:{'a’:1,'b’:2,'c’:3}

更新或添加多个元素

使用 .update() 方法更新或添加多个键值对。原本字典存在的值仍然保留

my_dict.update({'email':'john_new@example.com','country':'USA'})

这些高级操作使得处理复杂数据结构、合并数据以及进行各种转换变得更加简单有效。掌握这些技巧能够帮助你编写更加简洁、高效且易于维护的代码。

与json格式相似

相似

Python的字典和JSON(JavaScript Object Notation)非常相似,因为它们都是键值对的集合,这种数据结构在许多编程语言中都很常见。这种结构非常灵活,可以用来存储和表示各种复杂的数据类型。

JSON是一种数据交换格式,它的语法来源于JavaScript的对象字面量语法,但它是语言无关的,可以被许多编程语言(包括Python)读取和生成。JSON的数据格式和Python的字典非常相似,这使得在Python中处理JSON数据非常方便。

Python的json模块提供了一种简单的方式来编码和解码JSON数据。例如,你可以使用json.dumps()函数将一个Python字典转换为一个JSON字符串,或者使用json.loads()函数将一个JSON字符串解析为一个Python字典。

区别

尽管Python的字典和JSON有很多相似之处,但它们也有一些重要的区别。例如,Python的字典可以包含各种类型的键,包括不可变类型(如整数和元组)和可变类型(如列表),而JSON的键必须是字符串。此外,Python的字典可以包含任何Python对象作为值,而JSON的值只能是一种基本数据类型(如字符串、数字、布尔值、null、数组或另一个JSON对象)。

转换

在Python中,字典和JSON之间的转换可以通过json模块来实现。

将字典转换为JSON字符串(序列化):

  • dumps() 方法用于将Python对象编码成 JSON 字符串。
  • loads() 方法用于解码 JSON 数据。该方法返回 Python 字段的数据类型。
import json# 假设dict_obj是一个Python字典
dict_obj = {'name': 'John', 'age': 30, 'city': 'New York'}# 将字典转换为JSON字符串
json_str = json.dumps(dict_obj)print(json_str)  # 输出:{"name": "John", "age": 30, "city": "New York"}

将JSON字符串转换为字典(反序列化):

import json# 假设json_str是一个JSON格式的字符串
json_str = '{"name": "John", "age": 30, "city": "New York"}'# 将JSON字符串转换回Python字典
dict_obj = json.loads(json_str)print(dict_obj)  # 输出:{'name': 'John', 'age': 30, 'city': 'New York'}
特别注意!!!
1、别使用错方法,dumps()和dump() 是两个方法,dump()只传一个参数会报错
Traceback (most recent call last):File "/Users/fangyirui/PycharmProjects/pythonProject/11 字典.py", line 31, in <module>json.dump(dic)
TypeError: dump() missing 1 required positional argument: 'fp'

错误信息表明json.dump()函数缺少一个必需的位置参数'fp'。在Python的json模块中,dump()方法用于将Python对象编码成JSON格式并写入到一个文件中。因此,它需要两个主要参数:

  1. 要序列化的Python对象(例如字典)。
  2. 一个.write()支持的file-like对象,即可以是打开文件进行写操作的文件句柄。

如果你想将字典保存为JSON到文件中,应该这样做:

import json# 假设dic是你想要序列化的字典
dic = {'name': 'John', 'age': 30, 'city': 'New York'}# 打开一个文件用于写入,并确保使用utf-8编码以支持多语言内容
with open('output.json', 'w', encoding='utf-8') as f:# 使用dump()方法将字典保存到刚才打开的文件里json.dump(dic, f)

这段代码会创建(或覆盖)名为"output.json" 的文件,并将 dic 字典以JSON格式写入该文件。

2、python字段的True布尔类型和"true"字符串类型转成json会导致格式错乱
dic = {'Alice': '23dsq41', True: '9102', 98.6: '3258'}
dic["true"] = "字符串"
print(dic)  # {'Alice': '23dsq41', True: '9102', 98.6: '3258', 'true': '字符串'}
json_str_2 = json.dumps(dic)
print(json_str_2)  # {"Alice": "23dsq41", "true": "9102", "98.6": "3258", "true": "\u5b57\u7b26\u4e32"}

因为python的布尔类型True转成json是"true",如果要确保不丢失数据,请避免使用可以导致重复关键字(经过类型强制之后) 的原始关键字。

当json解析回字典时,后面的相同的key值会覆盖前面的值,且key都是字符串类型

# 解析json
{"Alice": "23dsq41", "true": "9102", "98.6": "3258", "true": "\u5b57\u7b26\u4e32"}# 结果
dict = 
{'Alice': '23dsq41', 'true': '字符串', '98.6': '3258'}
3、编码问题

在JSON中,非ASCII字符(比如中文字符)默认会被转换为Unicode转义序列。这是为了确保JSON字符串在各种环境下都能正确地被解析和显示,特别是在不同的编码系统之间传输数据时。

{"Alice": "23dsq41", "98.6": "3258", "true": "\u5b57\u7b26\u4e32"}

其中的 \u5b57\u7b26\u4e32 是“字符”两个字的Unicode编码。\u5b57 对应于“字”,\u7b26 对应于“符”。

如果你希望在使用 json.dumps() 方法将Python对象转换成JSON字符串时保持非ASCII文字(如中文)不被转义,可以通过设置 ensure_ascii=False 参数来实现:

import jsondict_obj = {'Alice': '23dsq41', '98.6': '3258', 'true': '字符串'}
json_str = json.dumps(dict_obj, ensure_ascii=False)print(json_str)

输出将会是:

{"Alice": "23dsq41", "true": "字符串", "98.6": "3258"}

相关文章:

python中字典(dict)原理及其操作

原理 Python中的字典&#xff08;Dictionary&#xff09;是一种基于哈希表&#xff08;Hash Table&#xff09;的实现&#xff0c;提供了高效的键值对&#xff08;Key-Value Pair&#xff09;存储和访问机制。了解字典的工作原理有助于更好地理解其性能特性以及为什么在某些情…...

​​​​​​​​​​​​​​.NET Core Web API实现微服务集群部署

​​​​​​​.NET Core Web API实现微服务集群部署 在.NET Core Web API中实现微服务集群部署通常涉及多个步骤&#xff0c;包括服务拆分、容器化、服务注册与发现、负载均衡等。以下是一个简化的步骤指南&#xff0c;用于在.NET Core中构建和部署微服务集群&#xff1a; 服…...

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…...

外包干了3个月,技术倒退1年。。。

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…...

Unity发布webgl获取浏览器的URL

Unity发布webgl获取浏览器的URL Unity发布webgl之后获取浏览器的url 在unity中创建文件夹Plugins&#xff0c;然后添加添加文件UnityGetBrowserURL.jslib var GetUrlFunc {//获取地址栏的URLStringReturnValueFunction: function () {var returnStr window.top.location.hre…...

StarRocks实战——多维分析场景与落地实践

目录 一、OLAP 系统历史背景 1.1 历史背景与痛点 1.2 组件诉求 二、StarRocks 的特点和优势 2.1 极致的查询性能 2.2 丰富的导入方式 2.3 StarRocks 的优势特点 三、多维分析的运用场景 3.1 实时计算场景 / 家长监控中心 3.2 实时更新模型选择 3.2.1 更新模型UNIQU…...

golang 函数式编程库samber/mo使用: Result

golang 函数式编程库samber/mo使用&#xff1a; Result 如果您不了解samber/mo库&#xff0c; 请先阅读上一篇 Option &#xff0c; 这篇讲述结构体Result的使用 Result和Option区别 samber/mo有了Option&#xff0c; 为什么还有Result呢? 我们先看看定义&#xff1a; Opt…...

Python 实现 CHO 指标计算(济坚指数):股票技术分析的利器系列(12)

Python 实现 CHO 指标计算(济坚指数&#xff09;&#xff1a;股票技术分析的利器系列&#xff08;12&#xff09; 介绍算法公式 代码rolling函数介绍核心代码计算 CHO 完整代码 介绍 CHO&#xff08;济坚指数&#xff09;是一种在金融领域中用于衡量市场波动性和风险的指数 先…...

MySQL的SQL语句

1.MySQL连接 连接命令一般是这样写的 mysql -h$ip -P$port -u$user -p比如:mysql -h127.0.0.1 -P3306 -uroot -p -h 指定连接的主机地址&#xff1b;-P 指定连接端口号&#xff1b;-u 指定用户名 -p指定用户名密码 2.SQL分类 DDL(Data Definition Language) 数据定义语言&…...

ABAP 发送带EXCEL邮件

前言 没啥特殊需求&#xff0c;就是有个库龄报表用户想整邮件发送 实现 用的最简单的XLS文件作为excel附件发送出去 观察XLS文件的纯文本格式&#xff0c;每列之间用TAB制表符分隔&#xff0c;每行之间用回车符分隔 思路也比较明确&#xff0c;在SAP中实现这种格式&#xf…...

Linux Nginx SSL 证书配置正确,扔展示不安全

Nginx SSL 配置 首先我能够确定自己的Nginx SSL是配置正确的&#xff1a; 问题展示 通过浏览器访问自己域名&#xff0c;点击不安全后查看证书&#xff0c;展示的证书并不是自己所配置的证书&#xff0c;如下&#xff1a; 通过curl -vvv https://域名访问返回的证书是过期…...

算法沉淀——动态规划之子数组、子串系列(上)(leetcode真题剖析)

算法沉淀——动态规划之子数组、子串系列 01.最大子数组和02.环形子数组的最大和03.乘积最大子数组04.乘积为正数的最长子数组长度 01.最大子数组和 题目链接&#xff1a;https://leetcode.cn/problems/maximum-subarray/、 给你一个整数数组 nums &#xff0c;请你找出一个具…...

Flutter GetX 之 暗黑模式

我们紧接上篇文章&#xff0c;今天继续讲解一下强大的 GetX 的另一个功能&#xff0c;就是 暗黑模式 &#xff0c;在iOS 13开始苹果的应用慢慢的都开始适配 暗黑模式&#xff0c;andr。oid 也慢慢的 开始跟进&#xff0c;截止到目前&#xff0c;商店的大部分应用都已经完成了 暗…...

SQLlabs46关

看看源码 最终我们的id是放到order by后面了 如果我们直接用列去排序 ?sortusername/password username&#xff1a; passward 可以看到顺序是不同的&#xff0c;当然第一列第二列第三列也可以&#xff0c;基本上都是这个原理&#xff0c;那怎么去实现注入呢&#xff0c;我…...

【Android移动开发】Windows10平台安装Android Studio与人工智能算法模型部署案例

目录 一、Android Studio下载地址二、开发环境JDK三、开始安装Android Studio四、案例展示与搭建五、人工智能算法模型移动端部署案例参考 一、Android Studio下载地址 https://developer.android.google.cn/studio/install.html 电脑配置要求&#xff1a; 下载保存在指定文…...

【IDEA】java 项目启动偶现Kotlin 版本问题 error:Kotlin:module was

一、问题描述&#xff1a; error:Kotlin:module was compiled with an incompatible version of kotlin the binary version of its metadata is二、问题原因&#xff1a; jar包版本冲突 三、解决方式&#xff1a; 1、Rebuild Project&#xff08;推荐☆&#xff09; 重新构…...

Jmeter系列(2)目录介绍

目录 Jmeter目录介绍bin目录docsextrasliblicensesprintable_docs Jmeter目录介绍 在学习Jmeter之前&#xff0c;需要先对工具的目录有些了解&#xff0c;也会方便后续的学习 bin目录 examplesCSV目录中有CSV样例jmeter.batwindow 启动文件jmeter.shMac/linux的启动文件jmete…...

vue基础操作(vue基础)

想到多少写多少把&#xff0c;其他的想起来了在写。也写了一些css的 input框的双向数据绑定 html <input value"123456" type"text" v-model"account" input"accou" class"bottom-line bottom" placeholder"请输入…...

EEA架构

概念 EEA&#xff08;Electrical/Electronic Architecture&#xff09;是一个综合性的概念&#xff0c;它涉及汽车电子电气系统的设计和整合。EEA是汽车上电气部件之间的相互关系&#xff0c;以及包含所有电气部件和电气系统所承载的逻辑功能的组织结构。它是系统的组织结构表…...

【物联网应用案例】牧场牛棚环境管理项目

众所周知&#xff0c;奶牛的健康和牛奶的产量在很大程度上取决于其所在的环境。对于牧场而言&#xff0c;牛棚内的环境更是至关重要。一个适宜的环境不仅能保证奶牛的舒适度&#xff0c;还能提高其产奶量&#xff0c;从而为牧场带来更多的经济效益。 为了更好地理解牛棚环境对…...

【Vue】组件通信组件通信

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;JVM ⛺️稳中求进&#xff0c;晒太阳 组件通信 组件通信&#xff0c;就是指组件与组件之间的数据传递 组件的数据是独立的&#xff0c;无法直接访问其他组件的数据想用其他组件的数据--&…...

瑞_Redis_Redis客户端

文章目录 1 Redis客户端1.1 Redis命令行客户端1.2 图形化桌面客户端1.2.1 资源准备1.2.2 安装1.2.3 建立连接 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《Redis》的基础篇的Redis客户端章节。由于博主是从B站黑马程序员的《Redis》学习其相关知识&#xff0c;所以本…...

在Ubuntu系统下搭建TDengine集群

目录 一、Ubuntu虚拟机创建 二、系统相关配置 1、设置系统hostname 2、网络配置及IP规划 3、配置FQDN&#xff08;etc/hosts&#xff09; 4、服务端口设置 三、TDengine server安装 1、服务安装 2、修改配置 3、启动taosd 4、服务卸载 四、客户端安装 1、client安…...

Easy-Jmeter: 性能测试平台

目录 写在开始1 系统架构2 表结构设计3 测试平台生命周期4 分布式压测5 压力机管理6 用例管理6.1 新增、编辑用例6.2 调试用例6.3 启动测试6.4 动态控量6.5 测试详情6.6 环节日志6.7 实时数据6.8 测试结果 7 测试记录7 用例分析8 系统部署8.1普通部署8.2容器化部署 写在最后 写…...

Unity3D Lua与C#的相互调用与性能剖析详解

前言 在游戏开发中&#xff0c;经常会遇到Lua与C#之间的相互调用的情况。本文将详细介绍Unity3D中Lua与C#的相互调用的方式&#xff0c;并对其性能进行剖析。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀&#xff01…...

鸿蒙开发路由跳转踩坑

文章目录 前言常见路由不能跳转问题总结 一、前言 02-25 10:40:10.799 42182-2075594 E C03900/Ace: [manifest_router.cpp(GetPagePath)-(0)] [Engine Log] cant find this page pages 02-25 10:40:10.799 42182-2075594 E C03900/Ace: [page_router_manager.cpp(StartPush…...

SpringBoot 3 新特性

目录 1. GraalVM1.1 生成本地可执行应用1.2 生成docker镜像 2. 支持虚拟线程3. HTTP Interface 1. GraalVM 使用GraalVM将SpringBoot应用程序编译成本地可执行的镜像文件&#xff0c;可以显著提升启动速度、峰值性能以及减少内存应用。传统的应用都是编译成字节码&#xff0c;…...

Day02:Web架构前后端分离站Docker容器站集成软件站建站分配

目录 常规化站点部署 站库分离 前后端分离 集成软件搭建Web应用 Docker容器搭建Web应用 建立分配站 静态 与 伪静态 总结 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗…...

链表和顺序表的优劣分析及其时间、空间复杂度分析

链表和顺序表的优劣分析及其时间、空间复杂度分析 一、链表和顺序表的优劣分析二、算法复杂度<font face "楷体" size 5 color blue>//上面算法的执行次数大致为&#xff1a;F&#xff08;N&#xff09; N^22*N10;   N 10,F(10) 1002010 130次   N 1…...

QQ防红跳转短网址生成网站完整源码

使用此源码可以生成QQ自动跳转到浏览器的短链接&#xff0c;无视QQ报毒&#xff0c;任意网址均可生成。 全新界面&#xff0c;网站背景图采用Bing随机壁纸 支持生成多种短链接 兼容电脑和手机页面 生成网址记录功能&#xff0c;域名黑名单功能 网站后台可管理数据 安装说明&am…...

邢台哪个公司做网站好/免费留电话号码的广告

1&#xff0c; 解压&#xff1a;gzip -d aix5-bfagent-7.1.1.4-0-0007.tar.gz tar -xvf aix5-bfagent-7.1.1.4-0-0007.tar 2&#xff0c;传文件&#xff0c;最好使用WinSCP但是选择使用ftp而不是SFTP 或者SCP 3&#xff0c;查看目录大小&#xff0c;因为RAFW…...

免费网站建设市场/电脑网络优化软件

计算机二级access题库答案在文末1&#xff0e;在Access数据库中&#xff0c;一个关系就是一个【 A】。A)二维表 B)记录C)字段 D)数据库 综合数据2. 设有部门和员工两个实体&#xff0c;每个员工只能属于一个部门&#xff0c;一个部门可以有多名员工&#xff0c;则部门与…...

做机械出口用哪个网站好/新疆今日头条新闻

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000我把git命令都按顺序记录...&#xff08;sudo可以用sudo su去掉..&#xff09;安装git&#xff1a;apt-get install git创建目录&#xff1a;mkdir learngit用cd命令进入..创建git仓库&am…...

做三国的网站/深圳网络营销推广招聘网

【解决方法】&#xff1a; 更改build/utils.js文件中的 ExtractTextPlugin 的 options配置. if (options.extract) {return ExtractTextPlugin.extract({use: loaders,publicPath: ../../, //注意: 此处根据路径, 自动更改fallback: vue-style-loader}) } else {return [vue-st…...

设计网络网站/百度推广手机app下载

https://loj.ac/problem/515 题意&#xff1a;给出n个区间&#xff0c;然后从这些区间中取一个数&#xff0c;然后求将取出的数的平方相加得到的数的种类数。 思路&#xff1a;因为n <100,所以得出的数最大为1e6,.所以将得到的数放在bitset中。复杂度O(n ^ 2 *1e6/32)。按…...

快手淘客网站是怎么做的/成都品牌推广

增强学习(Reinforcement Learning) 增强学习的应用领域很广&#xff0c;它假定有一个智能体(agent)在系统中&#xff0c;智能体做出特定的决策&#xff0c;对于表现不好的行为给予惩罚&#xff0c;奖励表现好的行为 Setup code # 不显示python使用过程中的警告 import warni…...