python列表常用方法大全
列表(List)是 Python 中最常用的数据结构之一,它是一个有序、可变的集合,可以存储任意类型的元素。以下是列表的定义及常见用法,包括拼接、增加数据、插入数据、删除数据、计算差值、相加、清空等操作,与字典和pandas结合使用场景比较多。
1. python列表常用基本方法
操作 | 方法或语法 | 示例 |
---|---|---|
定义列表 | [] | my_list = [1, 2, 3] |
列表拼接 | + 或 extend() | list1 + list2 或 list1.extend(list2) |
增加数据 | append() 或 extend() | my_list.append(4) |
插入数据 | insert() | my_list.insert(1, 1.5) |
删除数据 | remove() 、pop() 、del | my_list.remove(3) |
计算列表差值 | 集合操作 set(list1) - set(list2) | difference = list(set(list1) - set(list2)) |
列表数据相加减 | 列表推导式或 zip() | [x + y for x, y in zip(list1, list2)] |
清空列表 | clear() | my_list.clear() |
获取列表长度 | len() | len(my_list) |
检查元素是否存在 | in | if 3 in my_list: |
列表(原地)排序 | sort() | my_list.sort() |
列表(新)排序 | sorted() | my_list.sorted() |
列表反转 | reverse() | my_list.reverse() |
1.1. 删除数据
1.1.1. 使用 remove()
删除指定值
remove()
方法会删除列表中第一个匹配的值。如果值不存在,会抛出 ValueError
异常。
my_list = [1, 2, 3, 4, 3]
my_list.remove(3) # 删除第一个值为 3 的元素
print(my_list) # 输出: [1, 2, 4, 3]
1.1.2. 使用 pop()
删除指定索引的元素
pop()
方法根据索引删除元素,并返回被删除的值。如果不指定索引,默认删除最后一个元素。
my_list = [1, 2, 3, 4]
removed_value = my_list.pop(2) # 删除索引为 2 的元素
print(my_list) # 输出: [1, 2, 4]
print(removed_value) # 输出: 3
1.1.3. 使用 del
删除指定索引或切片
my_list = [1, 2, 3, 4, 5]
del my_list[1] # 删除索引为 1 的元素
print(my_list) # 输出: [1, 3, 4, 5]del my_list[1:3] # 删除索引 1 到 2 的元素
print(my_list) # 输出: [1, 5]
删除切片范围内的元素。
1.1.4. 列表推导式删除数据
在 Python 中,你可以使用列表推导式结合集合操作来从 SoC 列表中提取 EID 不在 units_discharge 中的元素。首先,我们需要将 units_discharge 列表转换为一个集合,以便进行快速的成员资格测试。然后,我们可以使用列表推导式来筛选出符合条件的元素。
下面是具体的实现代码:
SoC = [{'EID': 'CN1', 'SoC': 0.2}, {'EID': 'CN2', 'SoC': 0.6}, {'EID': 'CN3', 'SoC': 0.1}, {'EID': 'CN4', 'SoC': 0.9}]
units_discharge = [{'EID': 'CN4'}, {'EID': 'CN2'}]# 将 units_discharge 转换为一个包含 EID 的集合
eid_set = {item['EID'] for item in units_discharge}# 使用列表推导式筛选 EID 不在 eid_set 中的元素
filtered_SoC = [item for item in SoC if item['EID'] not in eid_set]print(filtered_SoC)
这段代码首先通过集合推导式{item['EID'] for item in units_discharge}
创建了一个包含所有 units_discharge 中 EID 的集合 eid_set。然后,它使用列表推导式[item for item in SoC if item['EID'] not in eid_set]
来筛选 SoC 列表中 EID 不在 eid_set 中的元素。
运行这段代码,你将得到以下输出:
[{'EID': 'CN1', 'SoC': 0.2}, {'EID': 'CN3', 'SoC': 0.1}]
这正是我们期望的结果,即 EID 不在 units_discharge 中的 SoC 列表元素。
1.1.5. 使用 filter()
函数
filter()
函数可以根据条件过滤列表中的元素,返回一个迭代器。可以将其转换为列表。
my_list = [1, 2, 3, 4, 3, 5]
new_list = list(filter(lambda x: x != 3, my_list)) # 过滤掉值为 3 的元素
print(new_list) # 输出: [1, 2, 4, 5]
注意事项:
filter()
返回的是一个迭代器,需要转换为列表。- 这种方法也不会修改原列表。
1.1.6. 使用 clear()
方法(删除所有元素)
如果需要删除列表中的所有元素(即清空列表),可以使用 clear()
方法。
my_list = [1, 2, 3, 4, 5]
my_list.clear() # 清空列表
print(my_list) # 输出: []
1.2. 两组列表数据相加减
1.2.1. 计算两个列表的差值
可以使用集合(set
)操作来计算两个列表的差值。
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7]
difference = list(set(list1) - set(list2)) # 计算 list1 有而 list2 没有的元素
print(difference) # 输出: [1, 2, 3]
1.2.2. 两个列表数据相加
可以使用列表推导式或 zip()
函数对两个列表的元素逐项相加。
1.2.2.1. 使用列表推导式
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = [x + y for x, y in zip(list1, list2)]
print(result) # 输出: [5, 7, 9]
1.2.2.2. 使用 zip()
函数
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = []
for x, y in zip(list1, list2):result.append(x + y)
print(result) # 输出: [5, 7, 9]
1.3. 增加数据
可以使用 append()
方法在列表末尾添加单个元素,或使用 extend()
方法添加多个元素。
1.3.1. 使用 append()
my_list = [1, 2, 3]
my_list.append(4) # 添加单个元素
print(my_list) # 输出: [1, 2, 3, 4]
1.3.2. 使用 extend()
my_list = [1, 2, 3]
my_list.extend([4, 5]) # 添加多个元素
print(my_list) # 输出: [1, 2, 3, 4, 5]
1.4. 插入数据
使用 insert()
方法可以在指定位置插入元素。
my_list = [1, 2, 3]
my_list.insert(1, 1.5) # 在索引 1 处插入 1.5
print(my_list) # 输出: [1, 1.5, 2, 3]
1.5. 列表拼接
可以使用 +
运算符或 extend()
方法拼接两个列表。
1.5.1. 使用 +
运算符
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined_list = list1 + list2
print(combined_list) # 输出: [1, 2, 3, 4, 5, 6]
1.5.2. 使用 extend()
方法
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.extend(list2) # 将 list2 拼接到 list1
print(list1) # 输出: [1, 2, 3, 4, 5, 6]
1.6. 清空列表
使用 clear()
方法可以清空列表。
my_list = [1, 2, 3, 4, 5]
my_list.clear() # 清空列表
print(my_list) # 输出: []
1.7. 列表排序
1.7.1. 列表sort()排序
my_list = [3, 1, 4, 1, 5, 9]
my_list.sort() # 升序排序
print(my_list) # 输出: [1, 1, 3, 4, 5, 9]my_list.sort(reverse=True) # 降序排序
print(my_list) # 输出: [9, 5, 4, 3, 1, 1]
使用 sorted()
函数会返回一个新的排序后的列表,原列表不会被修改。
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_list = sorted(my_list)
print(sorted_list) # 输出: [1, 1, 2, 3, 4, 5, 5, 6, 9]
print(my_list) # 输出: [3, 1, 4, 1, 5, 9, 2, 6, 5] (原列表未改变)
1.7.2. 自定义排序
可以使用 key
参数来指定排序的依据。例如,按字符串长度排序:
my_list = ['apple', 'banana', 'cherry', 'date']
my_list.sort(key=len)
print(my_list) # 输出: ['date', 'apple', 'cherry', 'banana']
1.7.3. 复杂对象的排序
如果列表中的元素是复杂对象(如字典),可以使用 key
参数来指定排序的依据。
my_list = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': 20}]
my_list.sort(key=lambda x: x['age'])
print(my_list)
# 输出: [{'name': 'Charlie', 'age': 20}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}]
1.8. 列表反转
my_list = [1, 2, 3, 4, 5]
my_list.reverse() # 反转列表
print(my_list) # 输出: [5, 4, 3, 2, 1]
1.9. 获取列表长度
my_list = [1, 2, 3, 4, 5]
length = len(my_list)
print(length) # 输出: 5
1.10. 检查元素是否存在
my_list = [1, 2, 3, 4, 5]
if 3 in my_list:print("3 存在于列表中")
2. 列表转字符串方法
如果你想将列表 ['1', '3', '5']
转换为字符串 "'1', '3', '5'"
,可以使用 join()
方法结合字符串格式化来实现。以下是具体代码:
# 原始列表
lst = ['1', '3', '5']# 使用 join() 方法将列表中的元素用 ", " 连接,并在每个元素两侧添加单引号
result = ', '.join(f"'{item}'" for item in lst)# 输出结果
print(result)
输出:
'1', '3', '5'
解释:
f"'{item}'"
是一个格式化字符串,它会将列表中的每个元素item
包裹在单引号中。', '.join(...)
将格式化后的元素用逗号和空格连接起来,形成最终的字符串。
如果你希望输出不带空格,比如 "'1','3','5'"
,可以这样修改:
result = ','.join(f"'{item}'" for item in lst)
输出:
'1','3','5'
3. 列表中字典数据计算
在 Python 中,如果列表里的数据是字典,并且你想计算某个关键字的合计值,可以使用多种方法,包括列表推导式和 sum 函数结合生成器表达式,或者使用传统的循环。以下是几种方法的示例:
3.1. 使用列表推导式和 sum 函数
# 示例数据
data = [{'name': 'Alice', 'score': 85},{'name': 'Bob', 'score': 90},{'name': 'Charlie', 'score': 78},
]# 计算 'score' 的合计值
total_score = sum([d['score'] for d in data])print(total_score) # 输出: 253
3.2. 使用生成器表达式和 sum 函数
生成器表达式比列表推导式更节省内存,因为它不会一次性生成整个列表,而是按需生成元素。
# 计算 'score' 的合计值
total_score = sum(d['score'] for d in data)print(total_score) # 输出: 253
3.3. 使用传统的循环
这种方法比较直观,适合初学者理解。
# 计算 'score' 的合计值
total_score = 0
for d in data:total_score += d['score']print(total_score) # 输出: 253
总结:
- 列表推导式:适合用于需要生成列表的场景,但在这种情况下,如果只是为了求和,生成整个列表可能不太高效。
- 生成器表达式:更高效,因为它不会一次性生成整个列表,而是按需生成元素。
- 传统循环:简单直观,适合初学者,性能也不错。
在实际应用中,你可以根据具体需求和代码风格选择适合的方法。对于求和这种操作,生成器表达式和传统循环通常是比较好的选择。
4. Pandas数据转列表字典
在Pandas中,你可以使用DataFrame.to_dict()
方法将数据表转换为字典。具体来说,你可以根据需要选择不同的orient
参数来控制输出的格式。以下是一些常用的orient
参数及其对应的输出格式:
- 默认(
dict
): 键是列名,值是每列的数据作为字典。 list
: 键是列名,值是每列的数据作为列表。
-.series
: 键是列名,值是每列的数据作为Series对象。split
: 包含三个键:index
,columns
,data
。records
: 列表中的每个元素是一个字典,字典的键是列名,值是每行的数据。index
: 键是索引,值是每行的数据作为字典。
下面是一些示例代码,展示了如何使用这些不同的orient
参数:
import pandas as pd# 创建一个示例DataFrame
data = {'name': ['Alice', 'Bob', 'Charlie'],'age': [25, 30, 35],'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)# 默认方式(dict)
dict_default = df.to_dict()
print("Default (dict):")
print(dict_default)# list方式
dict_list = df.to_dict(orient='list')
print("\nList:")
print(dict_list)# series方式
dict_series = df.to_dict(orient='series')
print("\nSeries:")
print(dict_series)# split方式
dict_split = df.to_dict(orient='split')
print("\nSplit:")
print(dict_split)# records方式
dict_records = df.to_dict(orient='records')
print("\nRecords:")
print(dict_records)# index方式
dict_index = df.to_dict(orient='index')
print("\nIndex:")
print(dict_index)
运行上述代码后,你会得到以下输出:
Default (dict):
{'name': {0: 'Alice', 1: 'Bob', 2: 'Charlie'}, 'age': {0: 25, 1: 30, 2: 35}, 'city': {0: 'New York', 1: 'Los Angeles', 2: 'Chicago'}}List:
{'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'city': ['New York', 'Los Angeles', 'Chicago']}Series:
{'name': 0 Alice
1 Bob
2 Charlie
Name: name, dtype: object, 'age': 0 25
1 30
2 35
Name: age, dtype: int64, 'city': 0 New York
1 Los Angeles
2 Chicago
Name: city, dtype: object}Split:
{'index': [0, 1, 2], 'columns': ['name', 'age', 'city'], 'data': [['Alice', 25, 'New York'], ['Bob', 30, 'Los Angeles'], ['Charlie', 35, 'Chicago']]}Records:
[{'name': 'Alice', 'age': 25, 'city': 'New York'}, {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}]Index:
{0: {'name': 'Alice', 'age': 25, 'city': 'New York'}, 1: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}, 2: {'name': 'Charlie', 'age': 35, 'city': 'Chicago'}}
通过选择合适的orient
参数,你可以灵活地将DataFrame转换为不同格式的字典。
5. 实践案例参考
5.1. python推导式及列推导式应用实践
python推导式及列推导式应用实践
5.2. python列表差分与集合(set)应用列表去重
python列表差分与集合应用实践
5.3 python编程技巧——list计算
python编程技巧——list计算
相关文章:
python列表常用方法大全
列表(List)是 Python 中最常用的数据结构之一,它是一个有序、可变的集合,可以存储任意类型的元素。以下是列表的定义及常见用法,包括拼接、增加数据、插入数据、删除数据、计算差值、相加、清空等操作,与字…...
Warm-Flow过去、现在和未来都不会有商业版
Warm-Flow过去、现在和未来都不会有商业版 Warm-Flow从24年2月加入Dromara开源社区,也正是由于加入他,Warm-Flow才等到更多人的关注和帮助。 同时吸引了不少贡献者,有的也成为了Warm-Flow的成员。 因此为了回馈大家,也是为了War…...
3. 实战(一):Spring AI Trae ,助力开发微信小程序
1、前言 前面介绍了Spring boot快速集成Spring AI实现简单的Chat聊天模式。今天立马来实战一番,通过Trae这个火爆全网的工具,来写一个微信小程序。照理说,我们只是极少量的编码应该就可以完成这项工作。开撸~ 2、需求描述 微信小程序实现一…...
3.23周赛补题
感觉还要多练,有的题思路不难,但是赛时就没思路。 A const int N110,M1e410; int dp[N][M]; void solve(){int n,m;cin>>n>>m;vector<int>a(n1);forr(i,1,n){cin>>a[i];}dp[0][0]1;//没钱 没菜 就是一种情况forr(i,1,n){refor…...
libpng-1.6.47-windows编译
本文操作按照《c&c开源库编译指南》中内容规范编写,编译环境配置、工具下载、目录规划,及更多其他开源库编译方法请参考该文章。 c&c开源库编译指南:https://blog.csdn.net/binary0006/article/details/144086155 本文章中的源代码已…...
RabbitMQ高级特性--重试特性
目录 1.重试配置 2.配置交换机&队列 3.发送消息 4.消费消息 5. 运行程序观察结果 6. 手动确认 注意: 在消息传递过程中, 可能会遇到各种问题, 如网络故障, 服务不可用, 资源不足等, 这些问题可能导致消息处理失败. 为了解决这些问题, RabbitMQ 提供了重试机制, …...
热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab - Sony S-Log3 Cinematic LUTs
热门索尼S-Log3电影感氛围旅拍LUTS调色预设 Christian Mate Grab – Sony S-Log3 Cinematic LUTs 我们最好的 Film Look S-Log3 LUT 的集合,适用于索尼无反光镜相机。无论您是在户外、室内、风景还是旅行电影中拍摄,这些 LUT 都经过优化,可为…...
基础认证-单选题(一)
单选题 1、下列关于request方法和requestlnStream方法说法错误的是(C) A 都支持取消订阅响应事件 B 都支持订阅HTTP响应头事件 C 都支持HttpResponse返回值类型 D 都支持传入URL地址和相关配置项 2、如需修改Text组件文本的透明度可通过以下哪个属性方法进行修改 (C) A dec…...
C++ 变量类型
C 变量类型 在C编程语言中,变量是存储数据的基本单元。变量类型决定了变量的存储方式和所占内存大小。了解C中的变量类型对于编写高效、可维护的代码至关重要。本文将详细介绍C中的各种变量类型,包括基本类型、复合类型和用户定义类型。 基本类型 C提…...
智能粉尘监测解决方案|守护工业安全,杜绝爆炸隐患
在厂房轰鸣的生产线上,一粒微小粉尘的聚集可能成为一场灾难的导火索。如何实现粉尘浓度的精准监控与快速响应?我们为您打造了一套"感知-预警-处置"全闭环的智能安全方案! 行业痛点:粉尘管理的生死线 在金属加工、化工…...
美观快速的react 的admin框架
系统特色: - 🎨 精心设计的UI主题系统,提供优雅的配色方案和视觉体验 - 📦 丰富完整的组件库,包含大量开箱即用的高质量组件 - 🔨 详尽的组件使用示例,降低开发者的学习成本 - 🚀…...
CentOS 7 挂载与卸载文件系统笔记
挂载文件系统 挂载的基本概念 挂载是将存储设备(如硬盘分区、U 盘、光盘等)连接到 Linux 文件系统的特定目录(挂载点),使得系统能够访问存储设备上的数据。 查看已挂载的文件系统 命令:mount 或 df -h mo…...
UE5学习笔记 FPS游戏制作28 显式玩家子弹数
文章目录 添加变量修改ShootOnce方法,设计时减少子弹,没有子弹不能开枪在UI上显示 添加变量 在Gun类中添加BulletNum和ClipSize两个参数 BulletNum是当前还有多少子弹,ClipSize是一个弹匣多少子弹 Rifle的ClipSzie设置为30,Laun…...
VRRP交换机三层架构综合实验
题目要求: 1,内网Ip地址使用172.16.0.0/16分配 说明可以划分多个子网,图中有2个VLAN,可以根据VLAN划分 2,sw1和SW2之间互为备份 互为备份通常通过VRRP(虚拟路由冗余协议)来实现。VRRP会在两个…...
QSettings用法实战(相机配置文件的写入和读取)
很多情况,在做项目开发的时候,将参数独立出来是比较好的方法 例如:相机的曝光次数、曝光时长等参数,独立成ini文件,用户可以在外面修改即可生效,无需在动代码重新编译等工作 QSettings便可以实现该功能 内…...
洛谷题单1-P1001 A+B Problem-python-流程图重构
题目描述 输入两个整数 a,b,输出它们的和(∣a∣,∣b∣≤109)。 输入格式 两个以空格分开的整数。 输出格式 一个整数。 输入输出样例 输入 20 30输出 50方式-print class Solution:staticmethoddef oi_input():"""从…...
分布式系统
一、分布式系统概述 1.1 为什么需要分布式系统? 核心驱动力: 性能需求:单机性能受物理限制(CPU/内存/IO),分布式系统通过并行计算突破瓶颈可扩展性:水平扩展(增加节点&#x…...
前端开发学习路线完整指南
前端开发学习路线完整指南 前端开发是一个不断发展的领域,涉及多个技术栈。本文将为你提供一条系统的前端学习路线,帮助你从零基础到熟练掌握前端开发技能。 1. 前置知识 在学习前端之前,了解一些基础知识会对你的学习过程有很大帮助。 计…...
Sa-Token核心功能解剖二( Session会话、 持久层Redis扩展 、全局侦听器 、全局过滤器、多账号体系认证、单点登录)
文章目录 概要功能结构图5.Session会话6.持久层扩展7.全局侦听器8.全局过滤器9.多账号体系认证10.单点登录 概要 Sa-Token核心功能解剖(二),主要有: Session会话 —— 全端共享Session,单端独享Session,自定义Session,方便的存取…...
C++搜索
功能扩展说明: 图类封装:将图数据结构封装为类,提高代码复用性 最短路径查找:基于BFS实现未加权图的最短路径查找 路径重构:通过parent数组回溯构建完整路径 异常处理:当路径不存在时返回空向量 复杂度分析…...
NC,GFS、ICON 数据气象信息可视化--降雨量的实现
随着气象数据的快速发展和应用,气象信息的可视化成为了一项不可或缺的技术手段。它不仅能帮助气象专家快速解读数据,还能为公众提供直观的天气预报信息。今天,我们将从降雨量的可视化出发,带大家一起了解如何实现气象数据的可视化…...
Android SystemUI深度定制实战:QSPanel下拉状态栏动态日期显示全解析
一、需求背景与实现思路 在Android系统定制化开发中,SystemUI的下拉状态栏(Quick Settings Panel,QSPanel)是用户高频交互的核心模块。近期某产品需求提出:在下拉展开状态栏时,需在QSPanel的顶部区域动态显…...
Linux 部署 rocketmq centos7
mq部署方案 1、rocketmq 顺序消费记录 一个master ,一个 brocker ,多个group ,多个topic,采用集群消费模式。 注意 一个group 对应一个 topic。 生产者 和 消费者 可以有多个,但是 主题和分组 都是一对一的。这样保证…...
02_MySQL安装及配置
文章目录 一、下载二、安装及配置2.1、选择安装类型2.2、检查需要的依赖2.3、安装2.4、配置2.4.1、配置类型和网络2.4.2、配置账户和角色2.4.3、配置Windows服务2.4.4、让配置生效 2.5、验证是否安装成功 三、卸载3.1、运行MySQL安装工具3.2、卸载及清理3.3、卸载之后的检查工作…...
银行的压力测试如何进行?
为什么要进行压力风险测试? 压力风险测试的最终目的是测试银行在极度恶劣的市场环境中是否有足够的资本维持运转。 题主链接中的一级资本充足率(Tier 1 capital ratio) 亦即衡量标准,这个数字越大,表明银行资本约充裕,可以在停止…...
7、Linux C 进程通信
一、无名管道(pipe) 1. 函数介绍 #include <unistd.h> int pipe(int pfd[2]); 参数:pfd是一个包含两个整数的数组,pfd[0]为读描述符,pfd[1]为写描述符。 返回值:成功时返回0,失败时…...
Android Framework 层 Hook 技术详解
目录 Hook 技术概述 什么是 Hook 技术? Hook 技术的核心原理 Hook 技术的进化与创新 Hook 技术的魅力与局限 Android Framework 层结构 Framework 层在 Android 中的位置 Framework 层的核心组件 为什么 Framework 层适合 Hook? 常用 Hook 方法 方法替换:换个 “芯…...
java接口中 使用@RequestParam和@RequestPart区别
1. 介绍 这两个注解都是spring注解。 RequestParam通常用于获取请求参数,这些参数可以是URL中的查询参数,也可以是表单数据中的字段。而RequestPart则是用于处理多部分(multipart)请求中的部分,特别是当上传文件或处理…...
CentOS-7.0系统基础操作
配置ip地址 编辑网卡文件: vi etc/sysconfig/network-scripts/ifcfg-ens33 在网卡文件里参照如下设置: BOOTPROTO"static" IPADDR192.168.61.233 GATEWAY192.168.61.2 NETMASK255.255.255.0 ONBOOT"yes" 防火墙管理 开启防火墙&am…...
全星研发管理APQP软件系统:驱动汽车产品研发全周期,打造高效合规的质量管理引擎
全星研发管理APQP软件系统:驱动汽车产品研发全周期,打造高效合规的质量管理引擎 在汽车、电子、医疗器械等高度依赖质量管理的行业中,APQP(先期产品质量策划)作为国际通用的产品开发管理框架,是确保产品从…...
Maven 的下载与安装
背景 为什么要建立本地Maven ,idea 默认的maven 仓库是放在系统盘的,依赖每次都存在系统盘用就了C盘就爆炸了,所有我们可以在本地其他盘安装maven 建立仓库。 idea 默认的依赖拉取地址是maven 官网,我们建立本地仓库,…...
26考研——排序_插入排序(8)
408答疑 文章目录 二、插入排序基本概念插入排序方法直接插入排序算法描述示例性能分析 折半插入排序改进点算法步骤性能分析 希尔排序相关概念示例分析希尔排序的效率效率分析空间复杂度时间复杂度 九、参考资料鲍鱼科技课件26王道考研书 二、插入排序 基本概念 定义&#x…...
Mem0 Prompt优化
在使用mem0的时候,系统中自带的提取事件的Prompt, 效果很差,我们可以按照我们的需求修改 from datetime import datetime, timedeltacustom_fact_extraction_prompt f"""你是一位个人信息整理专家,专注于准确存…...
C++ STL常用算法之常用算术生成算法
常用算术生成算法 学习目标: 掌握常用的算术生成算法 注意: 算术生成算法属于小型算法,使用时包含的头文件为 #include <numeric> 算法简介: accumulate // 计算容器元素累计总和 fill // 向容器中添加元素 accumulate 功能描述: 计算区间内容器元素…...
Kubernetes Webhook必要知识点:原理、配置与实践
#作者:邓伟 文章目录 1. 什么是 Kubernetes Webhook?2. Webhook 的工作原理2.1 准入控制器(Admission Controller)2.2 Webhook 类型 3. Webhook 的配置3.1 Webhook 配置文件3.2 配置字段说明 4. Webhook 的开发与部署4.1 开发 We…...
IGS 转 STL 全攻略:迪威模型在线转码助力 3D 建模
在 3D 建模与制造业领域,不同文件格式之间的转换是经常面临的重要任务。IGS 和 STL 作为其中两种常用格式,前者凭借出色的曲面表达能力,在 CAD 领域广泛应用;后者凭借简单的三角网格结构,成为 3D 打印、快速成型的行业…...
【Bug】记录2025年遇到的Bug以及修复方案
--------------------------------------------------------分割线 2025.3.25-------------------------------------------------------windows环境下通过命令行终端(必须是命令行下,直接赋值传递,代码正常)的形式传递字符串时&a…...
Unity UGUI - 六大基础组件
目录 一、Canvas上 1. Canvas:复制渲染子UI控件 2. ✨Canvas Scaler✨:画布分辨率自适应 3. Graphics Raycaster:射线事件响应 4. ✨Rect Transform✨:UI位置锚点对齐 二、Event System上 5. Event System 6. Standalone …...
TCP网络编程与多进程并发实践
一、引言 在网络编程中,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。而多进程并发则是一种提高服务器处理能力的有效手段,允许服务器同时处理多个客户端的请求。本文将详细介绍如何使用 TCP 协议进…...
IM腾讯Trtc与vod云点播:实现合流录制并上传,根据参数返回视频地址
全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 文档传送门 2. java基础使用2.1 准备工作2.1.1 云控制台获取(密钥和密钥secret)2.1.2 找到trtc控制台2.1.3 vod云点播控制台 2.2 使用准备的数据进行操作2.2.0 引入依赖2.2.1 创建TrtcUtils工具类2.2.2 TrtcReqDTO 录制请求dt…...
HTTP协议手写服务器
目录 一、请求的是Web根目录 二、GET方法通过URL传参 三、根据资源类型对应出Content-Type值 四、Http代码 项目完整源代码:Http 周不才/cpp_linux study - 码云 - 开源中国 一、请求的是Web根目录 如果URL中请求的资源是Web根目录,则自动跳转到主…...
Uni-app入门到精通:subPackages节点为小程序的分包加载配置
subPackages节点用于为小程序的分包加载配置。因小程序有体积和资源加载限制,各小程序平台提供了分包方式,以加快小程序的下载和启动速度。主包用于放置默认启动页面、babBar页面,以及一些所有分包都会用到的公共资源或JS脚本;而分…...
DeepSeek本地部署(linux)
一、下载并安装Ollama 1.下载Ollama Ollama官网:Ollama 点击"Download",会跳转至下载页面。 1.1在线下载安装 可复制此命令到Linux服务器进行在线下载,如下载速度过慢,可选择离线下载安装。 curl -fsSL https://ollama.com/install.sh | sh1.2离线下载安装 …...
工具——(常用的软件)视频编辑器
软件工具 1、视频编辑器:filmora 9 2、图标无损放大:oCam 或者 Adobe Illustrator CS6 3、图片编辑:Photoshop CS6 4、截图置顶工具:Snipaste 或者 PixPin 5、抢票:Bypass 6、文本日志工具:N…...
Kafka 多线程开发消费者实例
目前,计算机的硬件条件已经大大改善,即使是在普通的笔记本电脑上,多核都已经是标配了,更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单线程架构,那实在是有点暴殄天物了。不过,Kafka …...
org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 Maven打包失败
org.apache.maven.surefire:surefire-junit-platform:jar:2.22.2 解决办法 勾上这个,打包时跳过测试代码...
在Ubuntu中固定USB设备的串口号
获取设备信息 lsusb # 记录设备的Vendor ID和Product ID(例如:ID 0403:6001)# 获取详细属性(替换X和Y为实际设备号) udevadm info -a /dev/ttyUSBX 结果一般如下 创建udev规则文件 sudo gedit /etc/udev/rules.d/us…...
Java后端开发: 如何安装搭建Java开发环境《安装JDK》和 检测JDK版本
文章目录 一、JDK的安装1、 打开 Oracle 官方网址2、点击产品 二、检测JDK是否安装成功以及JDK版本的查看1. 打开命令行窗口检测是否安装成功查看 JDK 版本 一、JDK的安装 1、 打开 Oracle 官方网址 Oracle官网地址:https://www.oracle.com/cn/ 2、点击产品 打开下载的JDK文件…...
AudioFlinger与AudioPoliceManager初始化流程
AF/APF启动流程 在启动AudioSeriver服务的过程中会对启动AF/APF。main_audioserver.cpp有如下代码: AudioFlinger::instantiate();AudioPolicyService::instantiate();AF初始化流程 1.AudioFlinger::instantiate() 1.1 AudioFlinger构造函数 void AudioFlinger:…...
Keepalive+LVS+Nginx+NFS高可用架构
KeepaliveLVSNginxNFS高可用架构 1. NFS 业务服务器(192.168.98.138)2. Web服务集群(搭建RS服务器)开机自启动自动挂载配置nginx(为了区分Web1与Web2访问的文件内容) 3. LVS主机(Keepalivedlvs&…...