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

列表(list)篇(一)

文章目录

  • 2.1 创建列表
  • 2.2 append()函数
  • 2.3 clear()函数
  • 2.4 copy()函数
  • 2.5 count()函数
  • 2.6 del
  • 2.7 enumerate()函数
  • 2.8 extend()函数
  • 2.9 index()函数

2.1 创建列表

在Python中,列表(list)是一种基础的数据结构,可以包含不同类型的元素,并且这些元素是有序排列的。列表的元素可以是整数、浮点数、字符串、布尔值,甚至是其他列表(嵌套列表)等。

要定义一个列表,你可以使用方括号 [],并在其中放置用逗号分隔的元素。下面是一些示例:

# 定义一个空列表
empty_list = []# 定义一个包含整数的列表
integer_list = [1, 2, 3, 4, 5]# 定义一个包含不同类型元素的列表
mixed_list = [1, "hello", 3.14, True]# 定义一个包含嵌套列表的列表
nested_list = [1, [2, 3], [4, [5, 6]]]# 使用列表推导式定义一个列表,包含0到9的平方
squared_list = [x**2 for x in range(10)]# 输出列表
print(empty_list)
print(integer_list)
print(mixed_list)
print(nested_list)
print(squared_list)当你运行这些代码时,你将看到如下输出:[]
[1, 2, 3, 4, 5]
[1, 'hello', 3.14, True]
[1, [2, 3], [4, [5, 6]]]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

列表提供了许多内置的方法和操作,例如 append() 来添加元素,remove() 来删除元素,pop() 来移除并返回列表的最后一个元素,index() 来查找元素的索引等。这些方法和操作使得列表成为Python中非常灵活和有用的数据结构。

2.2 append()函数

在Python中,list 是一种数据结构,用于存储一系列有序的元素。append() 是 list 类型的一个方法,用于在列表的末尾添加一个新元素。

以下是 append() 方法的基本用法:

# 创建一个空列表
my_list = []# 使用append()方法向列表中添加元素
my_list.append(1)  # 列表变为 [1]
my_list.append(2)  # 列表变为 [1, 2]
my_list.append(3)  # 列表变为 [1, 2, 3]# 打印列表以查看结果
print(my_list)  # 输出: [1, 2, 3]

append() 方法只接受一个参数,即要添加到列表末尾的元素。它不会返回新的列表,而是直接修改原始列表。

需要注意的是,append() 是在列表的末尾添加元素,而不是在指定索引位置。如果你需要在特定索引位置插入元素,应使用 insert() 方法:

# 在索引1的位置插入元素'b'
my_list.insert(1, 'b')  # 列表变为 [1, 'b', 2, 3]print(my_list)  # 输出: [1, 'b', 2, 3]

在这个例子中,‘b’ 被插入到 my_list 的第二个位置(索引为1,因为索引是从0开始的)。

2.3 clear()函数

在Python中,list 类型有一个 clear() 方法,用于移除列表中的所有元素,将其变为一个空列表。这个方法不接受任何参数,并且没有返回值。调用 clear() 之后,原来的列表将不再包含任何元素。

下面是一个使用 clear() 方法的例子:

# 创建一个包含元素的列表
my_list = [1, 2, 3, 4, 5]# 打印原始列表
print("Original list:", my_list)  # 输出: Original list: [1, 2, 3, 4, 5]# 使用clear()方法清空列表
my_list.clear()# 打印清空后的列表
print("Cleared list:", my_list)  # 输出: Cleared list: []

在这个例子中,my_list 初始时包含5个元素。调用 my_list.clear() 之后,列表中的所有元素都被移除了,my_list 变成了一个空列表。

需要注意的是,clear() 方法直接修改了原始列表,而不是创建一个新的空列表。因此,调用 clear() 之后,原来指向该列表的所有变量和引用都将反映出列表已被清空的状态。

与 clear() 方法类似,但效果不同的是 del 语句。使用 del 语句可以删除整个列表对象:

# 删除整个列表对象
del my_list# 尝试访问已删除的列表会引发错误
# print(my_list)  # NameError: name 'my_list' is not defined

在这种情况下,my_list 这个变量名将不再存在,而不是仅仅其引用的列表内容被清空。如果尝试访问已删除的变量,将会引发 NameError。

2.4 copy()函数

在Python中,list的copy()方法用于创建列表的一个浅拷贝(shallow copy)。这意味着新列表是原始列表的一个新实例,但它包含的元素仍然是原始列表中元素的引用,而不是新创建的对象。

这里是如何使用copy()方法的示例:

# 创建一个原始列表
original_list = [1, 2, 3, [4, 5]]# 使用copy()方法创建列表的拷贝
copied_list = original_list.copy()# 打印原始列表和拷贝的列表
print("Original list:", original_list)
print("Copied list:", copied_list)# 修改原始列表中的一个元素
original_list[0] = 100# 打印修改后的原始列表和拷贝的列表
print("Modified original list:", original_list)
print("Copied list after modification of original:", copied_list)# 修改原始列表中的一个嵌套列表
original_list[3][0] = 400# 打印修改后的原始列表和拷贝的列表
print("Modified original list with nested list change:", original_list)
print("Copied list after modification of nested list in original:", copied_list)

输出结果将会显示,尽管我们修改了原始列表中的元素和嵌套列表,但拷贝的列表并没有受到这些修改的影响。这是因为copy()创建了原始列表的一个新实例,但内部元素仍然是原始元素的引用。

需要注意的是,如果列表包含可变对象(如列表、字典等),那么对原始列表中的这些对象的修改也会反映在拷贝的列表中,因为拷贝的列表包含的是对这些对象的引用,而不是对象的新副本。这被称为浅拷贝。如果你希望创建一个完全独立的副本,包括内部对象的新副本,那么你需要使用深拷贝(deep copy),可以使用copy模块的deepcopy()函数来实现。

import copy# 创建一个原始列表
original_list = [1, 2, 3, [4, 5]]# 使用deepcopy()方法创建列表的深拷贝
deep_copied_list = copy.deepcopy(original_list)# 修改原始列表中的嵌套列表
original_list[3][0] = 400# 打印原始列表和深拷贝的列表
print("Original list with nested list change:", original_list)
print("Deep copied list after modification of nested list in original:", deep_copied_list)

在这个例子中,即使我们修改了原始列表中的嵌套列表,深拷贝的列表也没有受到影响,因为它包含了原始内部对象的新副本。

2.5 count()函数

在Python中,list 类型有一个 count() 方法,用于统计列表中某个元素出现的次数。这个方法接受一个参数,即要统计的元素,并返回该元素在列表中出现的次数。

下面是一个使用 count() 方法的例子:

# 创建一个包含元素的列表
my_list = [1, 2, 3, 2, 2, 4, 5, 2]# 统计元素2在列表中出现的次数
count_of_two = my_list.count(2)# 打印结果
print("The count of 2 in the list is:", count_of_two)  # 输出: The count of 2 in the list is: 4

在这个例子中,my_list 包含8个元素,其中元素2出现了4次。调用 my_list.count(2) 返回了4,即元素2在列表中出现的次数。

count() 方法只会统计列表中直接包含的元素,不会递归地检查嵌套的对象(如列表中的列表)。如果列表中包含嵌套列表,并且你想要统计某个元素在整个嵌套列表结构中出现的次数,你需要实现一个递归函数来遍历所有嵌套列表。

需要注意的是,count() 方法对于列表中的元素进行直接比较,因此如果列表中的元素是不可哈希的类型(如列表或字典),那么它们不能被用作 count() 方法的参数,因为这样的元素不能出现在哈希表中,而 count() 方法需要利用哈希表来快速查找元素。

此外,count() 方法的时间复杂度通常是O(n),其中n是列表的长度,因为它需要遍历整个列表来统计元素的出现次数。

2.6 del

在Python中,del语句可以用来删除列表中的元素或整个列表。当你想删除列表中的某个元素时,你可以使用del语句并指定该元素的索引。如果你想删除整个列表,你可以使用del语句并指定列表的变量名。

下面是使用del语句删除列表元素的例子:

# 创建一个包含元素的列表
my_list = [1, 2, 3, 4, 5]# 打印原始列表
print("Original list:", my_list)  # 输出: Original list: [1, 2, 3, 4, 5]# 使用del语句删除索引为2的元素(即数字3)
del my_list[2]# 打印删除元素后的列表
print("List after deleting element at index 2:", my_list)  # 输出: List after deleting element at index 2: [1, 2, 4, 5]

在这个例子中,del my_list[2]删除了my_list中索引为2的元素,即数字3。

如果你想删除整个列表,可以这样做:

# 创建一个包含元素的列表
my_list = [1, 2, 3, 4, 5]# 打印原始列表
print("Original list:", my_list)  # 输出: Original list: [1, 2, 3, 4, 5]# 使用del语句删除整个列表
del my_list# 尝试访问已删除的列表会引发错误
# print(my_list)  # NameError: name 'my_list' is not defined

在这个例子中,del my_list删除了整个列表对象,包括其变量名my_list。此后,尝试访问my_list将会导致NameError,因为该变量已经不存在了。

请注意,使用del语句删除列表元素或整个列表时,必须确保你正在删除的是正确的元素或列表,因为删除操作是不可逆的。如果你想保留原始列表并创建一个没有特定元素的新列表,你应该使用list.remove(element)方法(用于删除第一个匹配的元素)或list.copy()与列表推导式(用于创建新列表,不包含某些元素)。

2.7 enumerate()函数

在Python中,enumerate()是一个内置函数,它用于遍历一个可迭代对象(如列表、元组或字符串)的元素,并同时返回每个元素的索引和值。这对于在循环中同时需要索引和元素值的情况非常有用。

enumerate()函数的基本语法是:

enumerate(iterable, start=0)

其中,iterable是一个可迭代对象,start是一个可选参数,表示计数开始的索引值,默认为0。

下面是一个使用enumerate()函数的例子,它遍历一个列表并打印出每个元素的索引和值:

# 创建一个列表
my_list = ['apple', 'banana', 'cherry']# 使用enumerate()遍历列表
for index, value in enumerate(my_list):print(f"Index: {index}, Value: {value}")

输出结果将会是:

Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: cherry

在上面的例子中,enumerate(my_list)返回一个枚举对象,该对象在每次迭代时产生一个包含索引和值的元组。for循环则解包这个元组,将索引赋值给index变量,将值赋值给value变量。

通过enumerate()函数,你可以方便地在循环中同时获取到元素的索引和值,而不需要使用额外的计数器或索引变量。

2.8 extend()函数

在Python中,list.extend()是一个方法,用于将一个可迭代对象(如列表、元组或字符串)的元素添加到现有列表的末尾。与list.append()方法不同,extend()会将可迭代对象中的每个元素单独添加到列表中,而不是将整个可迭代对象作为单个元素添加。

以下是list.extend()方法的语法:

list.extend(iterable)

其中,iterable是一个可迭代对象,可以是列表、元组、字符串等。

下面是一个使用extend()方法的例子:

# 创建一个列表
my_list = [1, 2, 3]# 创建另一个可迭代对象
another_list = [4, 5, 6]# 使用extend()将another_list的元素添加到my_list中
my_list.extend(another_list)# 打印修改后的列表
print(my_list)  # 输出: [1, 2, 3, 4, 5, 6]

在这个例子中,extend()方法将another_list中的每个元素(4、5、6)添加到my_list的末尾。

如果尝试使用append()方法将another_list添加到my_list,结果将会有所不同:

# 使用append()将another_list作为一个元素添加到my_list中
my_list.append(another_list)# 打印修改后的列表
print(my_list)  # 输出: [1, 2, 3, [4, 5, 6]]

在这个例子中,append()方法将整个another_list作为一个元素添加到了my_list的末尾,而不是将another_list中的元素添加到my_list中。

extend()方法在处理列表合并时非常有用,因为它可以简洁地将多个列表的元素合并到一个列表中。

2.9 index()函数

在Python中,list.index()是一个列表方法,用于查找列表中某个元素的第一个匹配项的索引。如果元素存在于列表中,index()方法返回该元素的最低索引(即它首次出现的位置)。如果元素不在列表中,index()方法将引发一个ValueError异常。

以下是list.index()方法的基本语法:

list.index(value, [start, [stop]])
  • value:需要查找的元素值。
  • start(可选):开始搜索的索引位置。如果指定了该参数,搜索将从该索引开始,直到列表的末尾。
  • stop(可选):停止搜索的索引位置。搜索将在该索引之前结束。

下面是一个使用index()方法的例子:

# 创建一个列表
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']# 使用index()查找'cherry'的索引
cherry_index = my_list.index('cherry')# 打印结果
print(f"The index of 'cherry' is: {cherry_index}")  # 输出: The index of 'cherry' is: 2# 尝试查找不存在的元素
try:nonexistent_index = my_list.index('fig')
except ValueError as e:print(f"An error occurred: {e}")  # 输出: An error occurred: 'fig' is not in list

在上面的例子中,my_list.index(‘cherry’)返回2,因为’cherry’是列表中第三个元素(索引从0开始)。当我们尝试查找一个不存在的元素(如’fig’)时,index()方法会抛出一个ValueError异常,因此我们需要使用try和except块来捕获并处理这个异常。

如果你想从列表的特定部分开始搜索,你可以使用start和stop参数。例如,要查找从索引1开始到索引4(不包括4)的元素’banana’的索引,你可以这样做:

banana_index = my_list.index('banana', 1, 4)
print(f"The index of 'banana' between indices 1 and 4 (exclusive) is: {banana_index}")  # 输出: The index of 'banana' between indices 1 and 4 (exclusive) is: 1

在这个例子中,尽管’banana’实际上在索引0的位置,但由于我们指定了搜索范围,所以返回的是在该范围内的第一个匹配项的索引。

相关文章:

列表(list)篇(一)

文章目录 2.1 创建列表2.2 append()函数2.3 clear()函数2.4 copy()函数2.5 count()函数2.6 del2.7 enumerate()函数2.8 extend()函数2.9 index()函数 2.1 创建列表 在Python中,列表(list)是一种基础的数据结构,可以包含不同类型的…...

spring整合Sentinel

安装sentinel: 执行命令; java -jar sentinel-dashboard-1.8.6.jar 注:sentinel的默认端口为8080,容易出现tomcat的冲突。 当端口冲突,可以使用该指令修改sentinel的端口 默认账号和密码都为sentinel Springcloud整合sentinel:…...

MFC 自定义分发消息方法

重点: 1.创建一个专门自定义消息的头文件 constValue.h #define WM_MY_CUSTOM_MESSAGE (WM_USER 101) // 自定义消息ID 2.在你需要发送和接收该消息的类中,首先注册这个自定义消息。一般在窗口类(如CWnd派生类)的OnInitDialog…...

FPGA的应用方向

文章目录 FPGA是什么?FPGA的发展FPGA有哪些公司国内的FPGA发展如何?国内FPGA应用情况怎样?FPGA的发展方向有哪些?FPGA在工业界的应用有哪些?FPGA在科研界的方向有哪些?FPGA在高频信号处理的应用场景FPGA应用…...

河南大学大数据平台技术实验报告二

大数据平台技术课程实验报告 实验二:HDFS操作实践 姓名:杨馥瑞 学号:2212080042 专业:数据科学与大数据技术 年级:2022级 主讲教师:林英豪 实验时间:2024年3月15日3点 至 2024年3月15日4点40 …...

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用: 金融市场中的熔断机制:在金融交易系统中,熔断机制(Circuit Breaker)是一种市场保护措施,旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…...

2403d,d的com哪里错了

原文 感谢任意见解.细节: >dmd --version DMD64 D Compiler v2.107.0参考: ComObject类 IUnknown接口 我只使用了ComObject类和隐式继承了IUnknown接口,用用ImportC编译并包含以下内容的comheaders.c编写了一些COM测试代码. #define WINVER 0x0A00 #define _WIN32_WINNT…...

LeetCode151:反转字符串中的单词

题目描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空…...

Linux入门-常见指令及权限理解

目录 1、Linux背景 1.1、发展历史 1.2、开源 1.3Linux企业应用现状 2、Linux下的基本命令 2.1、ls 指令 2.2、pwd 命令 2.3、cd 命令 2.4、touch命令 2.5、mkdir 命令 2.6、rmdir 指令和 rm指令 2.7 man 指令 2.8、cp指令 2.9、mv 指令 2.10 cat 2.11 more 2…...

找工作的经验总结一——渠道与简历

关于简历与面试的经验总结,也可以说是关于找工作的方法论。 这里我们用第一性原理的方法论来分析找工作这件事。 首先,我们的目的是什么? 当然是找工作,不论你是大学刚毕业,还是创业失败,或者是在家闲着…...

第 126 场 LeetCode 双周赛题解

A 求出加密整数的和 模拟 class Solution { public:int sumOfEncryptedInt(vector<int> &nums) {int res 0;for (auto x: nums) {string s to_string(x);char ch *max_element(s.begin(), s.end());for (auto &c: s)c ch;res stoi(s);}return res;} };B 执行…...

固态浸压计

Solid State Dip Meter(固态浸没仪/固态浸压计) 是真空管栅极浸入式仪表的固态半导体版本。它是一种用于测量 LC 电路谐振频率的仪器。LC 电路是由电感 (L) 和电容 (C) 组成的电路。当电感的感抗与电容的容抗相互抵消时&#xff0c;这些元件可以谐振于特定频率。 固态浸入式仪…...

Ubuntu上搭建TFTP服务

Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议&#xff0c;适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计&#xff0c;只…...

SpringBoot3框架,事件和监听器、SPI

事件和监听器 生命周期监听 自定义监听器的步骤&#xff1a; 编写SpringApplicationRunListener实现类&#xff08;各个实现方法的功能写在其sout内&#xff09; public class MyAppListener implements SpringApplicationRunListener {Overridepublic void starting(Configu…...

sadtalker-api/

———— 下载sadtalker工程文件&#xff0c;包括844个模型 。。。。。。。。。。。。。。。。 配置环境&#xff1a; pip源&#xff0c;设置&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple anaconda prompt, 进入命令行 how在 …...

vue+elementUI实现指定列的单元格可编辑

template中的代码如下&#xff1a; <div v-if"(item.label 高压侧 || item.label 低压侧)&&coloumnHeader.label 单柱片数"><div class"editableCell"><div v-if"item.label 高压侧" dblclick"changeValue(sco…...

RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间

🚀返回专栏总目录 文章目录 一、相关接口函数二、udevadm 命令三、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、相关接口函数 kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。…...

力扣---打家劫舍---动态规划

思路 1&#xff1a; 我将res[i]定义为&#xff1a;一定要取第 i 个房子的前提下&#xff0c;能获取的最大金额。那么直接用cnt从头记录到尾&#xff0c;每个房子的res最大值即是答案。那么递推公式是什么&#xff1f;res[i]max(res[i-2],res[i-1],...,res[0])nums[i]。数组初始…...

mac安装rust环境

mac安装rust环境 老规矩官方文档 1. mac官网使用的是脚本安装, 至于为啥没使用brew也没推荐俺也不太清楚 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh2. 一般来说中途会遇见有一个选择我这里选择直接回车默认安装(如果以后我研究明白的话会进行更新, 现在是…...

1058:求一元二次方程

【题目描述】 利用公式 求一元二次方程axbxc0的根&#xff0c;其中a不等于0。结果要求精确到小数点后5位。 【输入】 输入一行&#xff0c;包含三个浮点数a,b,c&#xff08;它们之间以一个空格分开&#xff09;&#xff0c;分别表示方程axbxc0的系数。 【输出】 输出一行&…...

终极Firefox优化指南:使用Betterfox提升隐私安全与浏览体验

终极Firefox优化指南&#xff1a;使用Betterfox提升隐私安全与浏览体验 【免费下载链接】Betterfox Firefox user.js for optimal privacy and security. Your favorite browser, but better. 项目地址: https://gitcode.com/GitHub_Trending/be/Betterfox Betterfox是一…...

Path of Building 2:流放之路2角色规划器的3大核心功能与5步上手指南

Path of Building 2&#xff1a;流放之路2角色规划器的3大核心功能与5步上手指南 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 还在为《流放之路2》复杂的天赋树和装备搭配而困惑吗&#xff1f;Path o…...

Vibe Coding 完全实战手册:2026年 AI 辅助编程工作流从入门到精通

什么是 Vibe Coding&#xff1f; Vibe Coding&#xff08;氛围编程&#xff09;是 2025 年由 Andrej Karpathy 提出、2026 年已被 91% 工程团队采用的 AI 辅助编程范式。它的核心思想是&#xff1a;用自然语言描述意图&#xff0c;让 AI 写代码&#xff0c;人负责审查和方向把控…...

告别DrawCall卡顿!Unity 2022最新Sprite Atlas图集打包保姆级教程(含旧版本迁移指南)

Unity 2022 Sprite Atlas图集优化全攻略&#xff1a;从原理到性能调优实战 最近在优化一个Unity项目时&#xff0c;发现UI界面在低端设备上频繁出现卡顿。通过Profiler分析&#xff0c;发现DrawCall数量高达200&#xff0c;而其中大部分都来自UI精灵的渲染。这让我重新审视了Sp…...

STM32 IAP升级后中断失灵?别慌,检查一下BootLoader里这个寄存器

STM32 IAP升级后中断失灵&#xff1f;深入解析FAULTMASK寄存器的关键作用 最近在嵌入式开发社区中&#xff0c;不少工程师反馈在进行STM32的IAP&#xff08;In-Application Programming&#xff09;升级后&#xff0c;应用程序的主循环能够正常运行&#xff0c;但所有中断都无法…...

易语言实现圆弧长度计算

在易语言中计算圆弧长度&#xff0c;尤其是基于凸度&#xff08;Bulge&#xff09;和端点坐标的实现&#xff0c;需要将几何公式转换为具体的代码逻辑。以下是针对不同已知条件的详细实现方法&#xff0c;特别是凸度与端点场景。 一、 核心几何公式与易语言实现基础 圆弧长度…...

从一道BUUCTF的SSRF题,聊聊Linux命令行那些“意想不到”的利用姿势(HITCON 2017实战复盘)

从BUUCTF SSRF题看Linux命令行的隐秘攻击面 在CTF竞赛和实际渗透测试中&#xff0c;SSRF&#xff08;服务器端请求伪造&#xff09;常被视作简单的内网探测工具&#xff0c;但2017年HITCON这道题却展示了它如何与Linux命令行特性结合&#xff0c;实现从信息泄露到远程代码执行的…...

Sunshine游戏串流终极指南:从零开始搭建自托管游戏主机

Sunshine游戏串流终极指南&#xff1a;从零开始搭建自托管游戏主机 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上流畅玩PC游戏&#xff0c;但厌倦了云游戏服务的…...

从T3到T507:全志工控芯片升级,我的嵌入式项目选型避坑指南

从T3到T507&#xff1a;全志工控芯片升级实战与选型策略 去年接手一个工业物联网网关项目时&#xff0c;我在芯片选型上踩了不少坑。当时客户要求设备能在-40℃~85℃环境下稳定运行&#xff0c;需要支持双网口通信、4K视频分析&#xff0c;还得兼顾成本控制。面对市面上琳琅满目…...

因果推理不是AGI的加分项,而是生死线,深度拆解3大主流架构在Do-Calculus测试中的崩溃临界点

第一章&#xff1a;因果推理不是AGI的加分项&#xff0c;而是生死线 2026奇点智能技术大会(https://ml-summit.org) 大型语言模型可以流畅续写《哈姆雷特》&#xff0c;却无法回答“若国王未饮毒酒&#xff0c;奥菲莉亚是否还会溺亡&#xff1f;”——这不是知识缺失&#xff…...