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

Python 第 12、13 节课 - 元组和列表

- 第 94 篇 -
Date: 2025 - 04 - 26
Author: 郑龙浩/仟墨
【Python 在校课堂笔记】

Python 第 12、13 节课 - 元组和列表

上课时间:
2025-04-21(12)
2025-04-24(13)

文章目录

  • Python 第 12、13 节课 - 元组和列表
  • 一 元组
    • 1 元组的创建方法
      • ① 全部存储整数
      • ② 每个元素可以存储不同的类型的数据
      • ③ 元组中嵌套元组
      • ④ 元组中嵌套 元组、列表…
      • ⑤ 括号可以省略
      • ⑥ 单元素元组必须加逗号
    • 2 tuple 与 元组 搭配使用
      • ① 可以计算某序列的元素个数
      • ② 将字符串中的每个字符拆分并存储到“元组”中,每个字符分别为元组中的单个的元素
      • ③ 还可以将列表转换为元组
    • 3 count 的使用
      • ① 元素全不都是一个类型
      • ② 有一个元素是元组,该元组中又有一个 `2` 的元素,在对 `2` 计数的时候,不算内部的元组中的元素
    • 4 `t.index(n)` 查找n,返回第一个`t` 的索引
      • ① 如果找到了
      • ② 如果找不到
      • ③ `index(n1, n2)` 可以设置查找的开始索引
  • 二 多变量赋值
      • ① 正常
      • ② 报错情况
      • ③ 使用 `*` 一一匹配
  • 三 列表
    • 1 列表的创建
    • 2 使用split分割输入的字符串
    • 3 修改某个元素
      • ① 用中括号访问某个元素,不越界
      • ② 用中括号访问某个元素,越界访问 –> 报错
    • 4 `l1.append(n) ` 追加
    • 5 `l1.extend(l2) ` 合并
    • 6 `l1.insert(n, x)` 插入
    • 7 `l1.pop(n)` 删除
    • 8 `l1.remove(num)` 移除
    • 9 `l1.clear()` 清除
    • 10 `l1.sort()` 排序
      • ① 默认排序 – 不写参数
      • ② 指定关键词
      • ③ 逆序排序
    • 11 `l1.reverse()` 倒置
    • 12 例题
  • 四 二维列表
    • 1 取某个元素
    • 2 循环遍历元素
  • 五 推导式
    • 1 将循环中的元素存入列表中
    • 2 将循环中符合条件的元素存入列表中
      • ① 只有 `if` 的情况
      • ② 带有 `if - else` 的情况

一 元组

  • 用括号来表示元组的数据
  • 只能读出,不可修改
  • 每个元素的类型可以不同
  • 但是如果 元组 中嵌套了 列表之类的可变的类型, 嵌套的这个列表是可以改变的

1 元组的创建方法

① 全部存储整数

t1 = (1, 2, 3, 4) # 等于 t1 = 1, 2, 3, 4
print (t1)# 打印
(1, 2, 3, 4)

② 每个元素可以存储不同的类型的数据

t2 = (1, '23', 4.5)
print (t2)
print (len(t2))# 打印
(1, '23', 4.5)
3

③ 元组中嵌套元组

t2 = (1, '23', 4.5, (1, 2, "dada"))
print (t2)
print (len(t2))# 打印
(1, '23', 4.5, (1, 2, 'dada'))
4

④ 元组中嵌套 元组、列表…

t3 = (1, '23', 4.5, (1, 2, "dada"), [1, 2, 3])
print (t3)
print (len(t3))# 打印结果
(1, '23', 4.5, (1, 2, 'dada'), [1, 2, 3])
5

⑤ 括号可以省略

t1 = 1, 2, 3, 4# 等于 t1 = (1, 2, 3, 4)
print (t1)# 打印
(1, 2, 3, 4)

⑥ 单元素元组必须加逗号

在创建单元素元组的时候,即使是有括号,也必须要加 ',',否则会被识别为普通变量

l1 = (1,) # 单元素元组
l2 = (1) # 会识别为 int 的 1,而不是只有元素 1 的元组
print (l1)
print (l2)# 打印结果
(1,)
1

2 tuple 与 元组 搭配使用

tuple 可以接受 认可可迭代对象

比如:字符串,列表,range等等

① 可以计算某序列的元素个数

print (tuple(range(5)))
# 打印
(0, 1, 2, 3, 4)

② 将字符串中的每个字符拆分并存储到“元组”中,每个字符分别为元组中的单个的元素

t4 = ('Python') # 这里'Python'并不是元组中的某个元素,而t4中存储的也不是元组,而本来就是字符串,也就相当于这里的括号没有“元组作用”
t5 = tuple('Python')
print (t4)
print (t5)
# 打印
Python
('P', 'y', 't', 'h', 'o', 'n')

③ 还可以将列表转换为元组

之前就在想既然字符串可以转换为元组,那么列表可不可以用这个转换为元组呢???

可以

print(tuple([1, 2, 3, 4]))  
# 打印
(1, 2, 3, 4)

3 count 的使用

只统计顶层元素,不会查找嵌套的元组

比如,在元组中嵌套元组,在查找外层元组的元素的时候,不会查找内部元组的元素,也就是内部元组的元素不会包括在内

t.count(n)

返回n在某序列t中的个数

n 可以是一个值,也可以是一组值

① 元素全不都是一个类型

t = (1, 2, 3, 2)
print (t.count(2))# 打印
2

② 有一个元素是元组,该元组中又有一个 2 的元素,在对 2 计数的时候,不算内部的元组中的元素

也就是统计2的时候,(2, 3) 是当作了另一个元组来匹配的,并不是元素 2

t2 = (1, 2, 2, (2, 3), 4, 5, 6, 7)
print (t2.count(2))# 打印
2 # 答案不是3, 元组中的元组中的 2 不算在内

4 t.index(n) 查找n,返回第一个t 的索引

① 如果找到了

t = (1, 2, 2, 3, 4)
print (t.index(2))# 打印
1

② 如果找不到

t = (1, 2, 2, 3, 4, 6, 7)
print (t.index(5))# 报错

index(n1, n2) 可以设置查找的开始索引

  • n1 是要查找的值
  • n2 是起始的索引
t = (1, 2, 3, 6, 4, 6)
print(t.index(6, 2))  # 从索引 2 开始找 6,返回 索引 3

二 多变量赋值

① 正常

x, y = (5, 10)
m, n = 3, 4
a, b, c = 'xyz' # 对于字符串来说,会将字符自动拆开,分配给a, b, c
print (x, y, m, n, a, b, c, end = ' ')# 打印
5 10 3 4 x y z 

② 报错情况

a2, b2, c2 = 'xyzk' # 报错 因为不可以一一匹配,四个字符不可以给三个变量

③ 使用 * 一一匹配

会自动匹配

但是多的元素匹配的是列表

*a, b, c = 'xyzk'
a2, *b2, c2 = 'xyzk'
a3, b3, *c3 = 'xyzk'
print (a, b, c, end = ' ')
print()
print (a2, b2, c2, end = ' ')
print()
print (a3, b3, c3, end = ' ')# 打印
['x', 'y'] z k 
x ['y', 'z'] k 
x y ['z', 'k'] 

三 列表

  • 用中括号 []

  • 每个元素的类型可以不同

  • 列表可读可改,元组只可读,不可改

  • list 只能接受 1 个可迭代对象,也就是 list 中只能写

    1个string 或 1个列表 或 1个元组

    # 代码举例
    l1 = list((1, 2, 3))
    l2 = list([1, 2, 3])
    l3 = list('123')
    print (l1,l2,l3, end = ' ')# 打印结果
    [1, 2, 3] [1, 2, 3] ['1', '2', '3'] 
    

1 列表的创建

  • list() 参数为空的时候,生成的空列表
l1 = [1, 2, 3, 4, 5]
l2 = list() # --> 空列表
# l3 = list(1, 2, 3, 4, 5, 6) # 错误
l4 = list('abc123')
print (l1)
print (l2)
print (l4)
# 打印
[1, 2, 3, 4, 5]
[]
['a', 'b', 'c', '1', '2', '3']
l3 = list(1, 2, 3, 4, 5, 6) # 报错

2 使用split分割输入的字符串

split() 默认按照 任意空白字符(空格、\t、\n等) 分割

s = 'Life is short, you need   python'
s2 = s = "Life\tis\nshort"
print (s.split()) # 可以按照多个空格,\t 等进行分隔
print (s.split(' ')) # 只能按照单个空格进行分隔
print (s2.split())# 打印
['Life', 'is', 'short,', 'you', 'need', 'python']
['Life', 'is', 'short,', 'you', 'need', '', '', 'python']
['Life', 'is', 'short']

3 修改某个元素

① 用中括号访问某个元素,不越界

l1 = [1, 2, 3, 4, 5]
print (l1[0]) # 打印1

② 用中括号访问某个元素,越界访问 –> 报错

l1 = [1, 2, 3, 4, 5]
print (l1[5]) # 越界访问,会报错

4 l1.append(n) 追加

  • 列表 的末尾,追加元素
  • 只能追加一个元素,如果追加多个元素,一定报错
l1 = [1, 2, 3, 4, 5]
l1.append(6)
print (l1)# 打印
[1, 2, 3, 4, 5, 6]

5 l1.extend(l2) 合并

将列表l2合并在 l1 的后边

l1 = [1, 2, 3, 4, 5]
l2 = ['a', 'b', 'c', 'd', 'e']
l1.extend(l2)
print (l1)# 打印
[1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']

6 l1.insert(n, x) 插入

l1 列表中,在索引 n 的前边插入元素 x

l1 = [1, 2, 3, 4, 5]
l1.insert(1, 9)
print (l1)# 打印
[1, 9, 2, 3, 4, 5]
l1 = [1, 2, 3, 4, 5]
l1.insert(5, 6)
print (l1)# 打印
[1, 2, 3, 4, 5, 6]

7 l1.pop(n) 删除

删除索引为 n 的元素

l1 = [1, 2, 3, 4, 5]
l1.pop(0) # 删除索引为0的元素l2 = [1, 2, 3, 4, 5]
l2.pop() # 删除最后一个元素

8 l1.remove(num) 移除

  • 参数num为 int 数值

  • 意思是从 列表 l1 中移除 num

  • 如果有列表中有相同的元素,则只移除第一个

l = [1, 2, 3, 2]
l.remove(2) # 只移除第一个 2# 打印
[1, 3, 2]

9 l1.clear() 清除

清楚列表中的所有元素

l1 = [1, 2, 3, 4, 5]
l1.clear(0) # 删除全部
print (l1)# 打印
[]

10 l1.sort() 排序

  • 默认排序顺序: 从小到大

  • 排序的时候,会对列表中的所有数据在原地进行排序 –> 人话就是,排序会对自身数据进行改变,而不是返回一个排序后的列表

  • 排序的列表中的元素必须是 同一类型

    (特殊: int float,可以在同一列表中进行排序 )

  • 排序规则:

    aa

① 默认排序 – 不写参数

l1 = [23, 45, 11, 46, 9]
l2 = ['专业', '222222222', '姓名', '100']
l3 = ['123', 45] 
l1.sort()
l2.sort()
l3.sort() # 报错# 打印
[9, 11, 23, 45, 46]
['100', '222222222', '专业', '姓名']

② 指定关键词

l4 = ['abdfa', 'Aeffds', 'ff', 'Baa']
l4.sort(key = str.upper) # 将所有小写字母按照大写字母来排序l5 = ['20258', '455', '856', '86']
l5.sort(key = int) # 将字符数字按照 int 形式来排序# 将字符数字按照 int 形式来排序l6 = ['20258', '455', '856666666666', '86']
l6.sort(key = len)# 将字符数字按照 长度 大小来排序print (l4)
print (l5)
print (l6)# 打印['abdfa', 'Aeffds', 'Baa', 'ff']
['86', '455', '856', '20258']
['86', '455', '20258', '856666666666']

③ 逆序排序

  • reverse 指定排序顺序,若是 True 表示的是从大到小排序
  • 原地逆置,不会返回新列表:
l1 = [23, 45, 11, 46, 9]
l1.sort(key = int, reverse = True)print (l1)# 打印
[46, 45, 23, 11, 9]

11 l1.reverse() 倒置

  • 作用是将列表中的元素全部倒置过来
  • l1.reverse() 会改变原来列表中的元素
l1 = [23, 45, 11, 46, 9]
l1.reverse()# 打印
[9, 46, 11, 45, 23]

12 例题

有 10 名同学的78Python课程成绩分别为: 94, 89, 96, 88, 92, 86, 69, 95,78, 85 利用列表分析成绩

输出 平均值,最高的三个成绩i,最低的三个成绩, 成绩中位数

l1  = [94, 89, 96, 88, 92, 86, 69, 95, 78, 85]
l1.sort()
avg = sum(l1) / len(l1)
print ('平均值为:', avg)
print ('最高的三个成绩为:', l1[-1:-4:-1])
print ('最低的三个成绩为为:', l1[0:3])
l1len = len(l1) # 存放长度
t = l1len // 2 # 中间的索引(长度为奇数) 或 中间两个索引的右边那个(长度为偶数)
if l1len % 2: # 如果长度为奇数, 直接打印中间的那个值print ('中位数为:', l1[t])
else: # 如果长度为偶数,取中间两个数的和再除以2print ('中位数为:', (l1[t] + l1[t - 1]) / 2)

四 二维列表

在二维列表中,如果要取某个元素的话,要写两对中括号,第一对表示的是 , 第二对表示的是

1 取某个元素

l1 = [
["张三", "001", 85],
["李四", "002", 92],
["王五", "003", 78],
["赵六", "004", 88]
]
print (l1[0][2]) # 0行2列 的元素
print (l1[1][1]) # 1行1列 的元素
print (l1[2][0]) # 2行0列 的元素

2 循环遍历元素

for arr in l1:print(arr[0], arr[1], arr[2])  # 打印姓名 学号 成绩
l1 = [
["张三", "001", 85],
["李四", "002", 92],
["王五", "003", 78],
["赵六", "004", 88]
]
for i in range(0, 4):for j in range(0, 3):print (l1[i][j], end = ' ')print ()
# 打印结果
张三 001 85
李四 002 92
王五 003 78
赵六 004 88

五 推导式

  • 又名 解析式

  • 从一个序列构建另一个新序列

  • 集成了变换和筛选功能

1 将循环中的元素存入列表中

# [表达式(含有循环要产生的变量) for 变量 in 可迭代对象]
l1 = [a for a in range(5)] # 0 ~ 4 的数字,存入列表中
l2 = [a * 2 for a in range(5)] # 0 ~ 4 之间的数 * 2,存入列表中
l3 = [x * y for x in range(3) for y in range(3)] # 可以写两个循环
l4 = [(x, y) for x in range(3) for y in range(3)]
print (l1)
print (l2)
print (l3)
print (l4)# 打印结果
[0, 1, 2, 3, 4]
[0, 2, 4, 6, 8]
[0, 0, 0, 0, 1, 2, 0, 2, 4]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

2 将循环中符合条件的元素存入列表中

  • 在循环后边可以写条件
  • 只会将符合条件的元素存入列表,不符合条件的元素不会存入列表

① 只有 if 的情况

偶数存入列表

模板

[表达式(含有循环要产生的变量) for 变量 in 可迭代对象 if 条件表达式]

实现

l5 = [a for a in range(10) if a % 2 == 0] # 0 ~ 10 之间 且 是偶数的值 存入列表中
print (l5)# 打印结果
[0, 2, 4, 6, 8]

② 带有 if - else 的情况

偶数存列表,奇数变负数

模板

[表达式1 if 条件 else 表达式2 for 变量 in 可迭代对象]

实现

l2 = [x if x % 2 == 0 else -x for x in range(10)]
print(l2)# 打印结果
[0, -1, 2, -3, 4, -5, 6, -7, 8, -9]

相关文章:

Python 第 12、13 节课 - 元组和列表

- 第 94 篇 - Date: 2025 - 04 - 26 Author: 郑龙浩/仟墨 【Python 在校课堂笔记】 Python 第 12、13 节课 - 元组和列表 上课时间: 2025-04-21(12) 2025-04-24(13) 文章目录 Python 第 12、13 节课 - 元组和列表一 元组1 元组的…...

新特性版本升级指引

✨ 升级到新特性版本时的配置迁移 1️⃣ 🔧 配置迁移工具说明 当您将应用升级到新特性版本时,可能需要处理部分配置属性的重命名或移除问题。 2️⃣ 🚀 启用方法 Spring Boot 提供了环境分析工具: 应用启动时打印诊断信息运行时…...

6.1 客户服务:智能客服与自动化支持系统的构建

随着企业数字化转型的加速,客户服务作为企业与用户交互的核心环节,正经历从传统人工服务向智能化、自动化服务的深刻变革。基于大语言模型(LLM)和智能代理(Agent)的技术为构建智能客服与自动化支持系统提供…...

从新手到高手:小程序开发进阶技巧分享

小程序开发从入门到精通需要经历技术积累、架构优化和工程化实践等多个阶段。以下是结合真实项目经验的进阶路线与核心技术要点,涵盖性能优化、架构设计、跨平台开发等关键领域: 一、性能调优实战技巧 1. 首屏渲染加速方案 // 预请求关键数据&#xff…...

S参数的含义

S参数的含义: 在低速设计时代,工程界普遍使用等效集总电路模型来描述互连通道的过孔、连接器等各部分。对于上升时间达到几个ns的低速数字信号,甚至可以使用一个0Ω电阻代替连接器,分析的结果也不会和实际情况有太大的差别。但是当…...

职场十二法则-马方

马方老师的《职场十二法则》,献给初入职场工作中迷茫的自己。 1.挣钱是能力的副产品,能力比挣钱重要,让自己值钱比有钱更重要。成长比赚钱重要,年轻时把成长放第一位,挣钱放第二位,通过提升能力实现长期收益。 2.成长…...

安装docker,在docker上安装mysql,docker上安装nginx

目录 一.安装docker 1.1查看Linux版本的命令这里推荐两种: 1.2查看内核版本有三种方式: 2.安装 2.1 如果之前安装了docker,先删除旧版本的doker 2.2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两…...

Java基础第五章、面向对象程序设计

1.package包 如果引入的不同包里面有相同的类名时,需要对要使用的类进行完整的限定名指定。 2.访问修饰符 子类对父类的方法重写也遵循上面的原则 一个java文件中最多只能有一个public(和文件同名)的类。 3.初始化块 //Driver.java public class Driver {private lo…...

RD电子实验记录本选用贴士A-B-C

传统的实验记录本,令人又爱又恨本 如何挑选电子实验室记录本(ELN)的品牌/服务商/供应商? 电子实验记录本,又名为ELN,Electronic lab notebook,enotebook,研发电子管理系统&#xf…...

Python 第 11 节课 - string 与 random 的方法

- 第 93 篇 - Date: 2025 - 04 - 26 Author: 郑龙浩/仟墨 【Python 在校课堂笔记】 Python 第 11 节课 - string 与 random 的方法 上课时间: 2025-04-14 文章目录 Python 第 11 节课 - string 与 random 的方法一 string 的方法1 s.split()2 s.find()3 s.replace()4 s.strip…...

proxychains4系统代理for linux(加速国内github下载速度,pip安装)

1.proxychains4代理安装: sudo apt-get install proxychains42.找到配置文件/etc/proxychains4.conf在[ProxyList]后面添加以下内容: socks5 127.0.0.1 10808 配置如下: 3.使用proxychains4(git clone): proxychains4 git c…...

LLM基础之源码一

transformers 核心源码梳理 Trainer部分: __init__() 初始化函数: def __init__(xxx):if args is None:output_dir "tmp_trainer"args TrainingArguments(output_diroutput_dir) self.args argsself.compute_loss_func compute_loss_fun…...

蛮荒tv桌面永不升级版app下载-蛮荒桌面安卓电视版下载

蛮荒桌面是一款具有丰富桌面内容的生活应用软件,可以连接电视上使用,用户将需要的软件添加到桌面上,系统就会自动分类管理软件,小编今天为大家推荐一款功能更大强大的电视桌面应用——乐看家桌面。 乐看家桌面功能亮点: 1.官网下载刷入机顶盒…...

2025蓝桥省赛c++B组第二场题解

前言 这场的题目非常的简单啊,至于为什么有第二场,因为当时河北正在刮大风被迫停止了QwQ,个人感觉是历年来最简单的一场,如果有什么不足之处,还望补充。 试题 A: 密密摆放 【问题描述】 小蓝有一个大箱子&#xff0…...

c#简易超市充值卡程序充值消费查余额

开发背景 本软件是给克什克腾旗某公司开发的一个简易的超市充值卡程序 # 功能 1、充值卡的充值、消费、查询余额 github下载:https://github.com/oyangxizhe/cash.git...

使用FME生成Delaunay三角形

目录 背景与应用场景 前置条件与数据准备 操作流程详解 3.1 点要素矢量化3.2 设置坐标系3.3 生成Delaunay三角形...

三款实用工具推荐:图片无损放大+音乐格式转换+音视频格式转换!

在这个数字化时代,总有些工具能让人眼前一亮。今天李师傅大家精选三款实用工具,从图片优化到格式转换,解决日常创作中的痛点,让数字生活更得心应手。 在这个数字化时代,总有些工具能让人眼前一亮。今天为大家精选三款…...

文本预处理(NLTK)

1. 自然语言处理基础概念 1.1 什么是自然语言处理 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于…...

泰迪杯实战案例学习资料:生产线的故障自动识别和人员配置优化

(西南石油大学,第十二届泰迪杯特等奖案例) (深度扩展版) 一、案例背景与目标 1.1 问题背景 在制造业中,生产线设备故障可能导致以下问题: 停机损失:每小时停机成本可达数万元(视行业而定)。 资源浪费:人工排班不合理导致高技能员工闲置或低效分配。 安全隐患:未及…...

dijkstra

open_set是当前正在计算的节点; 每次从当前open_set集合中找出cost最小的节点进行计算更新:从open_set中去除该节点,保存到close_set中; 运动更新可以根据运动模型选择合适的节点运动方式; 【代价的计算方式是&…...

【SSH 端口转发】通过SSH端口转发实现访问远程服务器的 tensorboard

SSH 连接远程服务器时的命令: ssh -L 8001:localhost:8001 usrnameserverip-L: 这是指定进行本地端口转发的选项。也就是说,要将本地机器的一个端口通过 SSH 隧道转发到远程服务器上的某个服务。 8001:localhost:8001: 第一个 80…...

w308汽车销售系统的设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

Spring 学习笔记之 @Transactional 异常不回滚汇总

使用springboot时,只要引入spring-jdbc/jpa相关的依赖后,在想要启用事务的方法上加上Transactional注解就能开启事务,碰到异常就能自动回滚。大大的提高了编码的便捷性性,同时也不侵入代码,保持了代码的简洁性。 默认情…...

Java 自定义TCP协议:【特点编码字符串<=>字节<=>特点编码16进制】16进制字符串和编码的转换 (各种编码通过字节向16进制的互转)| XOR计算

文章目录 引言I 各种编码通过字节向16进制的互转。字符串<=>字节<=>16进制 | Java验证微信小程序 JavaScript字符串转gb2312 字符编码,以16进制字符串传输。(接收蓝牙设备的信息,发送北斗终端消息)II xor校验码Java实现验证C# 实现引言 为了避免中文在传输过程…...

大模型的使用

以下是不同类型大模型及其适用场景&#xff1a; 对话模型 - 代表模型&#xff1a;GPT-3.5/4、Claude、LaMDA、ChatGLM等。 - 适用场景&#xff1a;客服机器人为用户解答常见问题&#xff0c;提供实时支持&#xff1b;个人助理帮助用户完成各种任务&#xff0c;如查询信息、设置…...

OSPF的不规则区域和特殊区域

目录 一、OSPF不规则区域类型 1、非骨干区域无法和骨干区域保持连通 2、骨干区域被分割 解决方案 1、使用虚连接 2、使用多进程双向重发布&#xff08;路由引入&#xff09; 二、特殊区域 1、STUB区域&#xff08;末梢区域&#xff09; 2、totally stub区域&#xff08;…...

C++学习:六个月从基础到就业——STL:分配器与设计原理

C学习&#xff1a;六个月从基础到就业——STL&#xff1a;分配器与设计原理 本文是我C学习之旅系列的第三十篇技术文章&#xff0c;也是第二阶段"C进阶特性"的第九篇&#xff0c;主要介绍C STL中的分配器设计原理与实现。查看完整系列目录了解更多内容。 引言 在之前…...

QQMusic项目功能总结

QQMusic项目功能总结 一、核心功能分类 &#xff08;一&#xff09;界面交互功能 功能模块实现方式使用类&#xff08;自定义/Qt库&#xff09;核心类说明窗口布局Head区&#xff08;图标、搜索框、控制按钮&#xff09; Body区&#xff08;左侧功能栏右侧页面区&#xff09…...

人形机器人:MCP与人形机器人的联系

MCP&#xff08;Model Context Protocol&#xff09;与人形机器人的结合&#xff0c;正在重构智能体与物理世界的交互范式。这种联系不仅体现在技术架构的深度融合&#xff0c;更体现在对机器人认知能力、协作模式和应用场景的全方位赋能。以下从技术整合、场景落地和未来趋势三…...

matplotlib画图工具使用(1) 画折线统计图python代码

Python 画折线统计图&#xff08;line chart&#xff09;最常用的是 matplotlib。 最基本的折线图代码如下&#xff1a; import matplotlib.pyplot as plt# 假设这是你的数据 x [1, 2, 3, 4, 5] y [2, 3, 5, 7, 11]# 创建折线图 plt.plot(x, y, markero) # markero 是在点…...

神经网络与深度学习第四章-前馈神经网络

前馈神经网络 在本章中&#xff0c;我们主要关注采用误差反向传播来进行学习的神经网络。 4.1 神经元 神经元是构成神经网络的基本单元。主要是模拟生物神经元的结构和特性&#xff0c;接收一组输入信号并产生输出。 现代神经元中的激活函数通常要求是连续可导的函数。 净输…...

TC3xx学习笔记-UCB BMHD使用详解(一)

文章目录 前言UCB BMHDPINDISHWCFGLSENA0-3LBISTENACHSWENABMHDIDSTADCRCBMHDCRCBMHD_NPW0-7 总结 前言 AURIX Tc系列Mcu启动过程&#xff0c;必须要了解BMHD&#xff0c;本文详细介绍BMHD的定义及使用过程 UCB BMHD UCB表示User Configuration Block,UCB是Dflash,存储的地址…...

C语言 函数递归

目录 1.什么是递归 2.递归的限制条件 3.递归的举例 1.递归与迭代 1.递归是什么 递归是学习C语言函数绕不开的一个话题&#xff0c;那什么是递归呢? 递归其实是一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是函数自己调用自己。 写一个史上最简单的C语言…...

4月25日日记(补)

最近实在是忙的不行了&#xff0c;做不到一天一更&#xff0c;但是实际上只需要每天拿出十分钟就可以写一篇不错的随笔或者说日记&#xff0c;我还是有点倦怠了。 昨天是4月25&#xff0c;我的生日&#xff0c;但是依旧是很忙碌的一天。零点准时拆了朋友们送的礼物&#xff0c…...

【股票系统】使用docker本地构建ai-hedge-fund项目,模拟大师炒股进行分析。人工智能的对冲基金的开源项目

股票系统: https://github.com/virattt/ai-hedge-fund 镜像地址: https://gitcode.com/gh_mirrors/ai/ai-hedge-fund 项目地址: https://gitee.com/pythonstock/docker-run-ai-hedge-fund 这是一个基于人工智能的对冲基金的原理验证项目。本项目旨在探讨利用人工智能进行…...

Ollama平替!LM Studio本地大模型调用实战

本文已收录在Github&#xff0c;关注我&#xff0c;紧跟本系列专栏文章&#xff0c;咱们下篇再续&#xff01; &#x1f680; 魔都架构师 | 全网30W技术追随者&#x1f527; 大厂分布式系统/数据中台实战专家&#x1f3c6; 主导交易系统百万级流量调优 & 车联网平台架构&a…...

2024江西ICPC部分题解

题目列表 A - Maliang Learning PaintingC - LiarG - Multiples of 5H - ConvolutionJ - Magic MahjongK - Magic Tree A - Maliang Learning Painting 题目来源&#xff1a;A - Maliang Learning Painting 思路分析 这是个签到题&#xff0c;直接输出abc即可 #include<b…...

RabbitMQ安装流程(Windows环境)

1.下载依赖&#xff0c;Downloads - Erlang/OTP 2.下载RabbitMQ安装包&#xff0c;Installing on Windows | RabbitMQ 3.下载的文件如下 4.安装ErLang依赖 5.安装RabbitMQ 6.RabbitMQ插件管理 6.1 进入Command Prompt命令行界面 6.2 输入rabbitmq-plugins.bat list 查看所有插…...

QT对话框及其属性

Qt中使用QDialog类表示对话框 对话框是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者简洁的用户交互 QDialog也是继承自QWidget,可以使用QWidget接口 Qt常用的内置对话框有: 对话框 说明 QFiledialog 文件对话框 QColorDialog 颜色对话框 …...

python怎么查看函数原型及变量是什么类型

python代码中看到一个变量或者对象名,怎么查看这个变量到底是个什么东西,是属性,还是函数,还是模块,还是个包,怎么去查看,要有一个查找流程: 1.可以先用print(变量名)和print(type(变量名)),确认变量是什么类型的参数 2.如果是模块或者类,可以通过dir()函数去查看模…...

住宅代理IP助力大规模数据采集实战

在数字化时代&#xff0c;数据就是燃料&#xff0c;而大规模数据采集则是从信息海洋中提炼价值的关键手段。面对目标网站的严格风控和地域限制&#xff0c;普通代理车轮战往往难以为继——流量一旦被识破&#xff0c;便可能付之东流。这时&#xff0c;住宅代理IP凭借来自真实家…...

【信息融合】卡尔曼滤波EKF毫米波雷达和红外数据信息融合

一、扩展卡尔曼滤波&#xff08;EKF&#xff09;的核心原理 EKF是针对非线性系统的改进卡尔曼滤波算法&#xff0c;其核心思想是通过一阶泰勒展开对非线性方程进行局部线性化&#xff0c;并利用雅可比矩阵&#xff08;Jacobian Matrix&#xff09;替换线性系统中的状态转移矩阵…...

一篇入门之-评分卡变量分箱(卡方分箱、决策树分箱、KS分箱等)实操例子

一、评分卡分箱-有哪些分箱方法 评分卡的分箱&#xff0c;是指将变量进行离散化。评分卡的分箱方法一般有&#xff1a;等频分箱、等距分箱、卡方分箱、决策树分箱、KS分箱等等。它们都属于自动分箱方法&#xff0c;其中&#xff0c;卡方分箱是实际中最常用的分箱方法。 1.1.等…...

【白雪讲堂】构建与优化企业知识图谱的实战指南

在GEO&#xff08;生成式引擎优化&#xff09;时代&#xff0c;知识图谱不仅是企业数据资产的“智慧大脑”&#xff0c;更是连接内容与AI理解之间的核心桥梁。一个高质量的知识图谱&#xff0c;能够显著提高AI平台对企业内容的识别度、相关性与推荐权重&#xff0c;从而在AI搜索…...

作为高速通道光纤传输模式怎么理解以及到底有哪些?

光纤的传输模式主要取决于光纤的结构(如纤芯直径和折射率分布),不同模式对应光波在光纤中传播的不同路径和电磁场分布。以下是光纤传输模式的主要分类及特点: 1. 单模光纤(Single-Mode Fiber, SMF) 核心特点: 纤芯直径极小(通常为 8-10微米),仅允许光以单一模式(…...

setup语法糖

为什么要有setup语法糖&#xff1a; 在选择式API中&#xff0c;一个模块涉及到的数据、方法、声明周期&#xff0c;会比较分撒&#xff0c;位置不集中&#xff0c;不利于解读代码&#xff0c;但是组合式API中的setup函数可以将他们组织在一起&#xff0c;提高了代码的可维护性…...

linux socket编程之tcp(实现客户端和服务端消息的发送和接收)

目录 一.创建socket套接字(服务器端) 二.bind将port与端口号进行绑定(服务器端) 2.1填充sockaddr_in结构 2.2bind绑定端口 三.建立连接 四.获取连接 五..进行通信(服务器端) 5.1接收客户端发送的消息 5.2给客户端发送消息 5.3引入多线程 六.客户端通信 6.1创建socke…...

Spring和Spring Boot集成MyBatis的完整对比示例,包含从项目创建到测试的全流程代码

以下是Spring和Spring Boot集成MyBatis的完整对比示例&#xff0c;包含从项目创建到测试的全流程代码&#xff1a; 一、Spring集成MyBatis示例 1. 项目结构 spring-mybatis-demo/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com.example/…...

Beta-VAE背景原理及解耦机制分析

Beta-VAE背景原理及解耦机制分析 论文链接&#xff1a;https://openreview.net/forum?idSy2fzU9gl&noteIdSy2fzU9gl 一、Beta-VAE的核心思想 Beta-VAE 是一种改进的变分自编码器&#xff08;VAE&#xff09;&#xff0c;旨在通过调整潜在变量的独立性来增强模型的解耦能…...

用c语言实现——一个动态顺序存储的串结构

一、思路概要 ①动态顺序存储的串结构&#xff1a; 动态应该使用动态内存分配&#xff0c;也就是用指针来存储字符数组&#xff0c;同时记录长度和当前容量。 这样结构体应该包含三个成员&#xff1a;一个char*指针&#xff0c;一个int表示当前长度&#xff0c;另一个int表示…...