概要
假设您有一组文档(PDF、页面、客户问题等),并且您想要总结这些内容
鉴于它们在理解和综合文本方面的熟练程度,大型语言模型(LLMs)是完成这项任务的绝佳工具。
langchain实现摘要需要先安装如下工具:
pip install tiktoken chromadb
总结或组合文档的三种方式:
- 1.填充(Stuff),它简单地将文档连接成一个提示(就是把文章放入提示词一起给大模型)
- 2.映射-归约(Map-reduce),将文档分成批次,总结这些批次,然后总结总结;
- 3.细化(Refine),是一种迭代式的摘要生成方法。它并非一次性处理所有文档内容,而是逐步处理文档,每处理一部分文档就对已生成的摘要进行优化和完善,最终得到完整的摘要。
案例
stuff案例1
通过load_summarize_chain生成摘要链来获取摘要
import os
from langchain.chains.summarize import load_summarize_chain
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.document_loaders import WebBaseLoader
# 设置 USER_AGENT 环境变量
os.environ[
'USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1-0----dKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI(temperature=0)
# 加载我们的文档。我们将使用 WebBaseLoader 来加载博客文章:
loader = WebBaseLoader('https://blog.csdn.net/SO_zxn/article/details/145756382')
# 得到整篇文章
docs = loader.load()
chain = load_summarize_chain(llm=llm, chain_type="stuff", )
rest = chain.invoke({'input_documents': docs})
print(rest)
for item in rest:
print(rest[item])
结果:
E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\摘要\demo1.py
USER_AGENT environment variable not set, consider setting it to identify your requests.
{'input_documents': [Document(metadata={'source': 'https://blog.csdn.net/SO_zxn/article/details/145756382', 'title': 'python数据容器-CSDN博客', 'description': '文章浏览阅读850次,点赞22次,收藏28次。一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。字典的定义,同样使用{},不过存储的元素是一个个的:键值对。', 'language': 'zh-CN'}, page_content=' \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器-CSDN博客\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器\n\n\n最新推荐文章于\xa02025-03-18 10:28:19\xa0发布\n\n\n\n小码农0912\n\n最新推荐文章于\xa02025-03-18 10:28:19\xa0发布\n\n\n阅读量850\n\n\n\n收藏\n\n 28\n \n\n\n\n\n点赞数\n 22\n \n\n\n\n\n\n\n分类专栏:\npython\n文章标签:\npython\npython数据容器\n\n\n\n\n\n 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。\n \n\n 本文链接:https://blog.csdn.net/SO_zxn/article/details/145756382\n\n\n\n\n版权\n\n\n\n\n\n\n\n\n\n\n\n\n\npython\n专栏收录该内容\n\n\n\n\n\n15 篇文章\n\n\n订阅专栏\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n文章目录\n定义注意\n列表语法案例列表的下表索引注意案例\n列表的方法查询修改插入追加一个元素追加多个元素删除删除某元素在列表中的第一个匹配项清空列表内容统计某元素在列表内的数量统计列表内,有多少元素列表方法汇总特点双重遍历案例\n\n元组概要语法元组的方法注意\n元组特点\n字符串概要字符串常用方法替换字符串的分割字符串的规整操作(去前后空格)字符串的规整操作(去前后指定字符串)统计字符串中某字符串的出现次数统计字符串的长度方法汇总\n特点\n容器序列切片概要语法案例\n集合概要语法常见方法添加新元素移除元素从集合中随机取出元素清空集合取出2个集合的差集消除2个集合的差集2个集合合并查看集合的元素数量\n方法汇总特点\n字典定义语法字典的嵌套常用方法获取新增元素更新元素删除元素清空字典获取全部的key遍历字典计算字典内的全部元素(键值对)数量\n方法汇总特点\n容器对比分类对比应用场景容器通用功能\n\n\n\n定义\n一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。\n注意\n\n数据容器内可以存放不同的数据类型。这点和java是有差别的 容器内可以嵌套容器\n\n数据容器根据特点的不同,如:\n是否支持重复元素是否可以修改是否有序,等\n分为5类,分别是:列表(1ist)、元组(tuple)、字符串(str)、集合(set)、字典(dict)\n列表\n语法\n\n案例\n\n列表的下表索引\n列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增。或者,可以反向索引,也就是从后向前:从-1开始,依次递减。如果列表是嵌套的列表,同样支持下标索引。\n注意\n\n这里倒序的时候与java的不同,java中下标是固定的,倒序遍历时还是以原来的下标获取。\n\n案例\n\n列表的方法\n函数是一个封装的代码单元,可以提供特定功能。 在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法\n查询\n查找某元素的下标\n功能:查找指定元素在列表的下标,如果找不到,报错ValueError\n语法:列表.index(元素)\nindex就是列表对象(变量)内置的方法(函数)\n案例:\n\n修改\n修改特定位置(索引)的元素值\n语法:列表[下标]=值\n可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)\n案例: \n插入\n语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素\n案例:\n\n追加一个元素\n语法:列表.append(元素),将指定元素,追加到列表的尾部\n案例:\n\n追加多个元素\n语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部\n案例:\n\n删除\n语法1:del 列表[下标] 语法2:列表.pop(下标)\n案例:\n\n\n删除某元素在列表中的第一个匹配项\n语法:列表.remove(元素)\n\n清空列表内容\n语法:列表.clear()\n\n统计某元素在列表内的数量\n语法:列表.count(元素)\n\n统计列表内,有多少元素\n语法:len(列表) 可以得到一个int数字,表示列表内的元素数量\n\n列表方法汇总\n\n特点\n可以容纳多个元素(上限为2**63-1、9223372036854775807个)可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增加或删除元素等)\n除了点2点其他的和java中数组列表一样\n双重遍历案例\n\n元组\n概要\n元组同列表一样,都是可以封装多个、不同类型的元素在内,但最大的不同点在于:元组一旦定义完成,就不可修改。所以,当我们需要在程序内封装数据,又不希望封装的数据被复改,那么元组就非常合适了。\n语法\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型\n\n\n\n注意:元组只有一个数据,这个数据后面要添加逗号\n\n元组的方法\n\n\n元组由于不可修改的原因,所以方法很少。\n\n案例:\n\n注意\n不可以修改元组的内容,否则会直接报错可以修改元组内的ist的内容(修改元素、增加、删除、反转等)不可以替换list为其它list或其它类型\n元组特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是有序存储的(下标索引)允许重复数据存在不可以修改(增加或删除元素等)支持for循环\n字符串\n概要\n字符串是字符的容器,一个字符串可以存放任意数量的字符。\n和其它容器如:列表、元组一样,字符串也可以通过下标进行访问:\n从前向后,下标从0开始从后向前,下标从-1开始\n同元组一样,字符串是一个:无法修改的数据容器。所以对字符串进行修改、移除、追加均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改。这点和java字符串是一样的,都不能修改。\n字符串常用方法\n替换\n语法:字符串.replace(字符串1,字符串2) 功能:将字符串内的全部:字符串1,替换为字符串2 注意:不是修改字符串本身,而是得到了一个新字符串\n\n字符串的分割\n语法:字符串.split(分隔符字符串) 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中 注意:字符串本身不变,而是得到了一个列表对象\n\n字符串的规整操作(去前后空格)\n语法:字符串.strip()\n\n字符串的规整操作(去前后指定字符串)\n语法:字符串.strip(字符串)\n\n统计字符串中某字符串的出现次数\n语法:字符串.count(字符串)\n\n统计字符串的长度\n语法:len(字符串)\n\n方法汇总\n\n特点\n只可以存储字符串长度任意(取决于内存大小)支持下标索引允许重复字符串存在不可以修改(增加或删除元素等)支持for循环\n基本和列表、元组相同; 不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型; 不同于列表,相同于元组的在于:字符串不可修改。\n容器序列切片\n概要\n序列是指:内容连续、有序,可使用下标索引的一类数据容器。列表、元组、字符串,均可以可以视为序列\n序列支持切片,即:列表、元组、字符串,均支持进行切片操作 切片:从一个序列中,取出一个子序列\n语法\n语法:序列[起始下标:结束下标:步长] 表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:\n起始下标表示从何处开始,可以留空,留空视作从头开始结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾步长表示,依次取元素的间隔\n步长1表示,一个个取元素 步长2表示,每次跳过1个元素取 步长N表示,每次跳过N-1个元素取 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)\n\n注意: 此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)\n\n案例\n\n集合\n概要\n集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序\n语法\n1、定义集合字面量 {元素,元素,元素} 2、定义集合变量 变量名称={元素,元素,元素} 3、定义空集合 变量名称=set()\n常见方法\n添加新元素\n语法:集合.add(元素)。将指定元素,添加到集合内 结果:集合本身被修改,添加了新元素\n\n移除元素\n语法:集合.remove(元素),将指定元素,从集合内移除 结果:集合本身被修改,移除了元素\n\n从集合中随机取出元素\n语法:集合.popO,功能,从集合中随机取出一个元素 结果:会得到一个元素的结果。同时集合本身被修改,元素被移除\n\n清空集合\n语法:集合.clear0,功能,清空集合 结果:集合本身被清空\n\n取出2个集合的差集\n语法:集合1.difference(集合2), 功能:取出集合1和集合2的差集(集合1有而集合2没有的) 结果:得到一个新集合,集合1和集合2不变\n\n消除2个集合的差集\n语法:集合1.difference_update(集合2) 功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。 结果:集合1被修改,集合2不变\n\n2个集合合并\n语法:集合1.union(集合2) 功能:将集合1和集合2组合成新集合 结果:得到新集合,集合1和集合2不变\n\n查看集合的元素数量\n语法:len(集合) 功能:统计集合内有多少元素 结果:得到一个整数结果\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标素引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环\n字典\n定义\n字典的定义,同样使用{},不过存储的元素是一个个的:键值对。\n语法\n1、定义字典字面量 {key:value , key:value , … ,key:value}\n2、定义字典变量 my_dict = {key: value , key: value , … , key:value}\n3、定义空字典 my_dict={} #空字典定义方式1 my_dict= dict() #空字典定义方式2\n使用{}存储元素,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和value可以是任意类型的数据(key不可为字典)Key不可重复,重复会对原有数据覆盖\n\n字典的嵌套\n字典的Key和Value可以是任意数据类型(Key不可为字典)。那么,就表明,字典是可以嵌套的\n常用方法\n获取\n字典同集合一样,不可以使用下标索引。但是字典可以通过Key值来取得对应的Value\n\n新增元素\n语法:字典[Key]=Value,结果:字典被修改,新增了元素\n\n更新元素\n语法:字典[Key]=Value,结果:字典被修改,元素被更新 注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值\n\n删除元素\n语法:字典.pop(Key), 结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除\n\n清空字典\n语法:字典.clear(),结果:字典被修改,元素被清空\n\n获取全部的key\n语法:字典.keys(),结果:得到字典中的全部Key\n\n遍历字典\n语法:for key in字典.keys()\n\n计算字典内的全部元素(键值对)数量\n语法:len(字典) 结果:得到一个整数,表示字典内元素(键值对)的数量\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据每一份数据是Key-Value键值对可以通过Key获取到Value,Key不可重复(重复会覆盖)不支持下标索引可以修改(增加或删除更新元素等)支持for循环,不支持while循环\n容器对比\n分类\n是否支持下标索引\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否支持重复元素:\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否可以修改\n支持:列表、集合、字典 不支持:元组、字符串\n对比\n\n应用场景\n列表:一批数据,可修改、可重复的存储场景元组:一批数据,不可修改、可重复的存储场景字符串:一串字符串的存储场景集合:一批数据,去重存储场景字典:一批数据,可用Key检索Value的存储场景\n容器通用功能\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n 确定要放弃本次机会?\n \n福利倒计时\n\n\n:\n\n:\n\n\n\n\n\n立减 ¥\n\n\n普通VIP年卡可用\n\n立即使用\n\n\n\n\n\n\n\n\n 小码农0912\n \n\n\n\n关注\n关注\n\n\n\n\n\n\n\n\n\n\n 22\n \n\n点赞\n\n\n\n\n\n\n\n踩\n\n\n\n\n\n\n\n 28\n \n\n\n\n\n 收藏\n \n\n\n\n\n 觉得还不错?\n \n 一键收藏\n \n\n\n\n\n\n\n\n知道了\n\n\n\n\n 0\n \n\n评论\n\n\n\n\n分享\n\n\n\n\n复制链接\n\n\n分享到 QQ\n\n\n分享到新浪微博\n\n\n\n\n扫一扫\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n举报\n\n\n\n\n\n举报\n\n\n\n\n\n\n\n\n专栏目录\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\nPython 5类数据容器总结\n\n\n\n\nqq1226546902的博客\n\n\n07-19\n\n\t\t\t\t\t1170\n\t\t\t\t\t\n\n\n\n\n\n注意:字典转换为其他类型时,除去str类型,都会丢失注意:字典转换为其他类型时,除去str类型,都会丢失Value值。根据ASCII表进行比较。\n\n\n\n\n\n\n\n\n参与评论\n您还未登录,请先\n登录\n后发表或查看评论\n\n\n\n\n\n\n\n\n\n知识笔记:Python数据容器(五)\n\n\n\n\n11-29\n\n\n\n\n\n内容概要:本文详细介绍了 Python 中五种主要的数据容器类型——列表、元组、字符串、集合与字典。对于每种数据容器,讲解了其基本格式、操作方法、特点及应用场景。其中包括创建数据容器的基本语法、常用操作方法...\n\n\n\n\n\n\n\n\n\nPython数据容器\n\n\n\n\nm0_75011423的博客\n\n\n04-15\n\n\t\t\t\t\t1147\n\t\t\t\t\t\n\n\n\n\n\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标索引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环使用{}存储原始,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和Value可以是任意类型的数据(key不可为字典)\n\n\n\n\n\n\n\n\n\n\n\npython数据容器详解\n\n\n\n\nqq_49231165的博客\n\n\n02-07\n\n\t\t\t\t\t2008\n\t\t\t\t\t\n\n\n\n\n\npython数据容器详解,包括列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict),对以上数据容器进行讲解对比\n\n\n\n\n\n\n\n\n\n【Python基础】Python数据容器(列表)\n\n\n\n\nPython、C++、HTML、Java\n\n\n06-08\n\n\t\t\t\t\t1896\n\t\t\t\t\t\n\n\n\n\n\n在Python中列表的定义如下:列表是内置有序、可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开.本章我们来学习列表的定义及相关操作。\n\n\n\n\n\n\n\n\n\nPython之数据容器\n\n\n\n\nm0_60121089的博客\n\n\n10-23\n\n\t\t\t\t\t3499\n\t\t\t\t\t\n\n\n\n\n\n列表的定义语法:[元素,元素,元素,...]元素:数据容器内的每一份数据,都称之为元素。元素的数据类型无限制,甚至元素可以是列表,这样就定义了嵌套列表。字典可以提供基于Key检索Value的场景实现,就像查字典一样。字典的定义语法:# 定义字典my_dict = {"张三":99,"李四":88,"王五":77}# 内容:{\'张三\': 99, \'李四\': 88, \'王五\': 77},类型:\n\n\n\n\n\n\n\n\n\nPython基础——第六章:Python数据容器\n\n\n\n\nc0rdXy的博客\n\n\n08-17\n\n\t\t\t\t\t1560\n\t\t\t\t\t\n\n\n\n\n\n本课程无缝衔接数据开发、人工智能、数据分析,后续挑战30w年薪。从零基础开始入门学习Python,开发环境使用最新版python3.10,从软件下载,IDE使用,让学生一步步了解Python,掌握Python基础语法,掌握代码编写的规范和技巧,Bug调试能力,用Python第三方库做出可视化图表。课程+配套练习学练结合,锻炼学生的自主解决问题的能力和举一反三能力,课堂生动有趣,不枯燥。...........................\n\n\n\n\n\n\n\n\n\nPython——数据容器\n\n\n\n\nAugust_._的博客\n\n\n12-01\n\n\t\t\t\t\t1970\n\t\t\t\t\t\n\n\n\n\n\n数据容器 列表 元组 字符串 序列 集合 字典\n\n\n\n\n\n\n\n\n\npython中数据容器总结\n\n\n\n\nqq_58739767的博客\n\n\n05-05\n\n\t\t\t\t\t1407\n\t\t\t\t\t\n\n\n\n\n\n五类数据容器均支持for循环遍历;列表、元组、字符串支持while循环,集合字典不支持while循环(无法下标索引)。\n\n\n\n\n\n\n\n\n\nPython基础(十六、数据容器汇总)\n热门推荐\n\n\n\n\nqq_35716085的博客\n\n\n01-04\n\n\t\t\t\t\t2万+\n\t\t\t\t\t\n\n\n\n\n\nsorted(容器,reverse=True)\n\n\n\n\n\n\n\n\n\nPython基础-数据容器(超详细版!!!)\n\n\n\n\n2301_80162458的博客\n\n\n07-28\n\n\t\t\t\t\t2004\n\t\t\t\t\t\n\n\n\n\n\n本文讲解Python数据容器基础,涵盖列表、元组、字符串、集合、字典等多种数据容器类型。从基础的定义、特点、操作方法到实际案例练习,详细且全面。无论是刚入门的 Python 新手,还是需要复习巩固的开发者,都能通过本文有所收获。\n\n\n\n\n\n\n\n\n\nPython数据容器入门.md\n\n\n\n\n08-22\n\n\n\n\n\n### Python 数据容器详解 在 Python 编程语言中,数据容器是极其重要的组成部分,它们用于组织和管理数据。本文将详细介绍 Python 中最常用的三种数据容器:列表(List)、元组(Tuple)和字典(Dictionary),并...\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 4:集合 - 高效处理去重数据\n\n\n\n\n05-26\n\n\n\n\n\n还在为数据去重而烦恼吗? Python 集合,一键去重,高效处理,让你的代码更简洁、运行更快!\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 3:字典 - 数据存储的万能工具\n\n\n\n\n05-26\n\n\n\n\n\n还在为复杂数据的存储和查找而烦恼吗? Python 字典,Key-Value 键值对,数据存储的万能工具,让你的代码更简洁、更高效!\n\n\n\n\n\n\n\n\n\n从零开始重新学习 Python 3:列表、元组、字典?Python 数据容器大揭秘!\n\n\n\n\n05-25\n\n\n\n\n\n还在为数据存储而烦恼?Python 数据容器,帮你轻松解决数据管理难题!\n\n\n\n\n\n\n\n\n\nPython说明\n\n\n\n\n2501_90888019的博客\n\n\n03-14\n\n\t\t\t\t\t1618\n\t\t\t\t\t\n\n\n\n\n\n2. **跨平台**:Python 可以在多种操作系统上运行,如 Windows、macOS、Linux 等。3. **丰富的库**:Python 拥有庞大的标准库和第三方库,涵盖了从 Web 开发到数据科学的多个领域。- **数据科学**:使用 NumPy、Pandas、Matplotlib 等库进行数据分析和可视化。- **机器学习**:使用 TensorFlow、PyTorch、Scikit-learn 等库。1. **易读易写**:Python 的语法简洁明了,代码可读性高。\n\n\n\n\n\n\n\n\n\n爬虫(requsets)笔记\n最新发布\n\n\n\n\nm0_63272315的博客\n\n\n03-18\n\n\t\t\t\t\t1382\n\t\t\t\t\t\n\n\n\n\n\n一个类型六个属性r.text获取网站源码r.encoding访问或定制编码方式r.url获取请求的urlr.content响应的字节类型响应的状态码r.headers响应的头信息。\n\n\n\n\n\n\n\n\n\npython二级每日十题(1)\n\n\n\n\npianmian1的博客\n\n\n03-17\n\n\t\t\t\t\t593\n\t\t\t\t\t\n\n\n\n\n\n在Python中len()函数是输出字符串长度,x=\'R\\0S\\0T\',分别有R、\\0、S、\\0和T 5个字符,所以len(x)=5,print(len(x))是将5打印出来。先用import导入turtle库,for循环依次将1~6赋给变量i,i分别被依次赋值为1,2,3,4,5,6,fd()是画笔当前的前进方向,left()是画笔移动的角度,故绘制出来的是六边形.故选c,博主正确。反之输出i的值,故输出结果为:1,2,3,5,,故选c项,3=78,78//6=13,12+13=25.故选c项,\n\n\n\n\n\n\n\n\n\npython|结构的模式匹配match|同步迭代\n\n\n\n\nm0_73658649的博客\n\n\n03-16\n\n\t\t\t\t\t351\n\t\t\t\t\t\n\n\n\n\n\n在 Python 中,是一种强大的功能,用于根据数据的结构或内容进行匹配和处理。Python 3.10 引入了match语句,使得模式匹配更加直观和灵活。模式匹配可以用于处理复杂的数据结构,如列表、字典、类实例等。\n\n\n\n\n\n\n\n\n\nPython 数据容器 编写\n\n\n\n\n10-09\n\n\n\n\n\n在Python中,数据容器是一组用于存储和组织数据的数据结构,它们支持不同的操作,如添加、删除元素以及查找等。以下是几种常见的Python数据容器:\n\n1. **列表(List)**:动态数组,可以容纳任意类型的元素,通过索引访问元素,并允许元素的增删改查。\n\n ```python\n numbers = [1, 2, 3]\n ```\n\n2. **元组(Tuple)**:类似于列表,不可变序列,一旦创建就不能修改。\n\n ```python\n fruits = (\'apple\', \'banana\', \'orange\')\n ```\n\n3. **集合(Set)**:无序且不包含重复元素的集合,常用于去重和成员判断。\n\n ```python\n unique_elements = {1, 2, 3}\n ```\n\n4. **字典(Dictionary)**:键值对的映射,通过键快速查找对应的值,键必须是唯一的。\n\n ```python\n person_info = {\'name\': \'Alice\', \'age\': 25}\n ```\n\n5. **列表推导式(List Comprehension)**:一种简洁的创建新列表的方式,利用已有的列表生成新的列表。\n\n6. **字典推导式(Dict Comprehension)**:类似,但用于创建新的字典。\n\n7. **集合推导式(Set Comprehension)**:用于创建新的集合。\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n小码农0912\n\n\n\n\nCSDN认证博客专家\n\n\nCSDN认证企业博客\n\n\n\n码龄8年\n\n\n\n 暂无认证\n \n\n\n\n\n\n\n\n204\n原创\n\n\n\n\n8672\n周排名\n\n\n\n\n8620\n总排名\n\n\n\n21万+\n访问\n\n\n\n\n\n\n等级\n\n\n\n\n\n4315\n积分\n\n\n915\n粉丝\n\n\n1917\n获赞\n\n\n12\n评论\n\n\n1730\n收藏\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n私信\n\n\n关注\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n热门文章\n\n\n\n\n\t\t\t\tJava中List集合中contains()与indexOf()的区别\n\t\t\t\t\t\n16968\n\n\n\n\n\t\t\t\tPrometheus Gauge使用\n\t\t\t\t\t\n6441\n\n\n\n\n\t\t\t\tjava截取字符串方式:split()与subString()方法\n\t\t\t\t\t\n5714\n\n\n\n\n\t\t\t\t高可用系统架构总结\n\t\t\t\t\t\n3394\n\n\n\n\n\t\t\t\t使用JS完成注册页面表单简单校验\n\t\t\t\t\t\n3287\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n最新评论\n\n\n\n序列化和反序列化\n\n有点浪的程序员: \nserialVersionUID 不是被 static 变量修饰了吗?为什么还会被“序列化”?\nstatic 修饰的变量是静态变量,位于方法区,本身是不会被序列化的。 static 变量是属于类的而不是对象。你反序列之后,static 变量的值就像是默认赋予给了对象一样,看着就像是 static 变量被序列化,实际只是假象罢了。\n---\n对象序列化是为了jvm在停止运行时保存对象的状态,serialVersionUID 位于方法区,jvm停止运行时,那它不就也会丢失吗\n\n\n\nJVM问题总结\n\n小码农0912: \n本篇写的很不好, 见谅!\n\n有大神可以指点下吗\n\n\n\n从IO多路复用到redis线程模型\n\nCSDN-Ada助手: \n恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/615727512。 \n\n\n\n算法题1 — 寻找两数之和为目标值\n\nCSDN-Ada助手: \n一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, \n更多创作活动请看:\n物联网技术正在如何影响我们的生活: https://activity.csdn.net/creatActivity?id=10421?utm_source=csdn_ai_ada_redpacket\n\t可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket\n\tMicrosoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket\n\n全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket\n\n\n\n\n如何解决 顺序消费、重复消费\n\n小码农0912: \n马上自己写一篇新的\n\n\n\n\n\n\n大家在看\n\n\n\n\n\t\t\t\t掉进代码世界的90分钟\n\t\t\t\t\t\n303\n\n\n\n\n\t\t\t\t读取本地rawfile的文件数据\n \n\n\n\n\t\t\t\t仿人格斗机器人设计报告(四)\n\t\t\t\t\t\n461\n\n\n\n\n\t\t\t\t达梦数据库主备切换技术解析与实践指南\n \n\n\n\n\t\t\t\tspringboot基于JAVA Web房产中介公司管理系统的设计与实现\n \n\n\n\n\n\n最新文章\n\n\n\nlangchain文本分类\n\n\nAI自动生成数据\n\n\nlangchain从非结构化文本中提取结构化信息\n\n\n\n\n2025\n\n\n\n03月\n36篇\n\n\n\n\n02月\n75篇\n\n\n\n\n01月\n1篇\n\n\n\n2024年1篇\n2023年62篇\n2022年16篇\n2018年9篇\n2017年4篇\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n相关专栏 \n\n\n\n\n\n\n\n\n\n技术研发\n专栏\n\n10 人学习\n\n\n技术研发,主要涵盖Java、Python、SpringBoot、Docker、等相关技术文章以及操作规范\n\n\n\n\n\n\n\n\n\n\npython\n专栏\n\n22 人学习\n\n\n本专栏专注于Python编程的实用性,适用于各个层次的编程爱好者和专业人士。通过分类学习,系统掌握从基础语法到高级算法、数据处理和Web开发的各个方面。每个分类都配有详细的解析和实战案例,帮助读者在实际项目中应用所学知识,提升编程能力和解决问题的思维能力。无论是初学者还是有经验的开发者,都能从中受益\n\n\n\n\n\n\n\n\n\n\n深入浅出AI\n专栏\n\n16 人学习\n\n\n本专栏详细介绍AI习相关知识内容,累计浏览量80w+,专栏内容从入门到实战,包括各类机器学习、深度学习知识点总结,内容含概CV、NLP、大模型、推荐方向等,可供AI入门者与工作人员学习。\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n评论\n\n\n\n\n被折叠的\xa0\xa0条评论\n\t\t 为什么被折叠?\n\n到【灌水乐园】发言\n\n\n\n查看更多评论\n\n\n\n\n\n\n 添加红包\n \n\n\n\n祝福语\n\n\n\n\n请填写红包祝福语或标题\n\n\n红包数量\n\n\n个\n\n红包个数最小为10个\n\n\n红包总金额\n\n\n元\n\n红包金额最低5元\n\n\n余额支付\n\n 当前余额3.43元\n 前往充值 >\n\n\n\n\n 需支付:10.00元\n \n取消\n确定\n\n\n\n\n\n\n\n下一步\n\n\n\n知道了\n\n\n\n\n\n\n\n\n\n\n成就一亿技术人!\n\n\n\n\n\n\n 领取后你会自动成为博主和红包主的粉丝\n 规则\n\n\n\n\n\n\n\n\n\n\nhope_wisdom 发出的红包\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n实付元\n使用余额支付\n\n\n\n\n点击重新获取\n\n\n扫码支付\n\n\n\n\n\n\n\n\n\n\n\n钱包余额\n0\n\n\n\n\n抵扣说明:\n 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。\n\n\n\n\n余额充值\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')], 'output_text': 'This blog post from CSDN discusses the five main data container types in Python: lists, tuples, strings, sets, and dictionaries. It provides an overview of their characteristics, usage scenarios, and common methods. The post emphasizes that Python data containers can hold elements of different types and allows for modifications, except for tuples and strings, which are immutable. It also touches on the concept of sequence slicing and the importance of understanding the differences between these container types for effective programming.'}
[Document(metadata={'source': 'https://blog.csdn.net/SO_zxn/article/details/145756382', 'title': 'python数据容器-CSDN博客', 'description': '文章浏览阅读850次,点赞22次,收藏28次。一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。字典的定义,同样使用{},不过存储的元素是一个个的:键值对。', 'language': 'zh-CN'}, page_content=' \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器-CSDN博客\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器\n\n\n最新推荐文章于\xa02025-03-18 10:28:19\xa0发布\n\n\n\n小码农0912\n\n最新推荐文章于\xa02025-03-18 10:28:19\xa0发布\n\n\n阅读量850\n\n\n\n收藏\n\n 28\n \n\n\n\n\n点赞数\n 22\n \n\n\n\n\n\n\n分类专栏:\npython\n文章标签:\npython\npython数据容器\n\n\n\n\n\n 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。\n \n\n 本文链接:https://blog.csdn.net/SO_zxn/article/details/145756382\n\n\n\n\n版权\n\n\n\n\n\n\n\n\n\n\n\n\n\npython\n专栏收录该内容\n\n\n\n\n\n15 篇文章\n\n\n订阅专栏\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n文章目录\n定义注意\n列表语法案例列表的下表索引注意案例\n列表的方法查询修改插入追加一个元素追加多个元素删除删除某元素在列表中的第一个匹配项清空列表内容统计某元素在列表内的数量统计列表内,有多少元素列表方法汇总特点双重遍历案例\n\n元组概要语法元组的方法注意\n元组特点\n字符串概要字符串常用方法替换字符串的分割字符串的规整操作(去前后空格)字符串的规整操作(去前后指定字符串)统计字符串中某字符串的出现次数统计字符串的长度方法汇总\n特点\n容器序列切片概要语法案例\n集合概要语法常见方法添加新元素移除元素从集合中随机取出元素清空集合取出2个集合的差集消除2个集合的差集2个集合合并查看集合的元素数量\n方法汇总特点\n字典定义语法字典的嵌套常用方法获取新增元素更新元素删除元素清空字典获取全部的key遍历字典计算字典内的全部元素(键值对)数量\n方法汇总特点\n容器对比分类对比应用场景容器通用功能\n\n\n\n定义\n一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。\n注意\n\n数据容器内可以存放不同的数据类型。这点和java是有差别的 容器内可以嵌套容器\n\n数据容器根据特点的不同,如:\n是否支持重复元素是否可以修改是否有序,等\n分为5类,分别是:列表(1ist)、元组(tuple)、字符串(str)、集合(set)、字典(dict)\n列表\n语法\n\n案例\n\n列表的下表索引\n列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增。或者,可以反向索引,也就是从后向前:从-1开始,依次递减。如果列表是嵌套的列表,同样支持下标索引。\n注意\n\n这里倒序的时候与java的不同,java中下标是固定的,倒序遍历时还是以原来的下标获取。\n\n案例\n\n列表的方法\n函数是一个封装的代码单元,可以提供特定功能。 在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法\n查询\n查找某元素的下标\n功能:查找指定元素在列表的下标,如果找不到,报错ValueError\n语法:列表.index(元素)\nindex就是列表对象(变量)内置的方法(函数)\n案例:\n\n修改\n修改特定位置(索引)的元素值\n语法:列表[下标]=值\n可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)\n案例: \n插入\n语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素\n案例:\n\n追加一个元素\n语法:列表.append(元素),将指定元素,追加到列表的尾部\n案例:\n\n追加多个元素\n语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部\n案例:\n\n删除\n语法1:del 列表[下标] 语法2:列表.pop(下标)\n案例:\n\n\n删除某元素在列表中的第一个匹配项\n语法:列表.remove(元素)\n\n清空列表内容\n语法:列表.clear()\n\n统计某元素在列表内的数量\n语法:列表.count(元素)\n\n统计列表内,有多少元素\n语法:len(列表) 可以得到一个int数字,表示列表内的元素数量\n\n列表方法汇总\n\n特点\n可以容纳多个元素(上限为2**63-1、9223372036854775807个)可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增加或删除元素等)\n除了点2点其他的和java中数组列表一样\n双重遍历案例\n\n元组\n概要\n元组同列表一样,都是可以封装多个、不同类型的元素在内,但最大的不同点在于:元组一旦定义完成,就不可修改。所以,当我们需要在程序内封装数据,又不希望封装的数据被复改,那么元组就非常合适了。\n语法\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型\n\n\n\n注意:元组只有一个数据,这个数据后面要添加逗号\n\n元组的方法\n\n\n元组由于不可修改的原因,所以方法很少。\n\n案例:\n\n注意\n不可以修改元组的内容,否则会直接报错可以修改元组内的ist的内容(修改元素、增加、删除、反转等)不可以替换list为其它list或其它类型\n元组特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是有序存储的(下标索引)允许重复数据存在不可以修改(增加或删除元素等)支持for循环\n字符串\n概要\n字符串是字符的容器,一个字符串可以存放任意数量的字符。\n和其它容器如:列表、元组一样,字符串也可以通过下标进行访问:\n从前向后,下标从0开始从后向前,下标从-1开始\n同元组一样,字符串是一个:无法修改的数据容器。所以对字符串进行修改、移除、追加均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改。这点和java字符串是一样的,都不能修改。\n字符串常用方法\n替换\n语法:字符串.replace(字符串1,字符串2) 功能:将字符串内的全部:字符串1,替换为字符串2 注意:不是修改字符串本身,而是得到了一个新字符串\n\n字符串的分割\n语法:字符串.split(分隔符字符串) 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中 注意:字符串本身不变,而是得到了一个列表对象\n\n字符串的规整操作(去前后空格)\n语法:字符串.strip()\n\n字符串的规整操作(去前后指定字符串)\n语法:字符串.strip(字符串)\n\n统计字符串中某字符串的出现次数\n语法:字符串.count(字符串)\n\n统计字符串的长度\n语法:len(字符串)\n\n方法汇总\n\n特点\n只可以存储字符串长度任意(取决于内存大小)支持下标索引允许重复字符串存在不可以修改(增加或删除元素等)支持for循环\n基本和列表、元组相同; 不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型; 不同于列表,相同于元组的在于:字符串不可修改。\n容器序列切片\n概要\n序列是指:内容连续、有序,可使用下标索引的一类数据容器。列表、元组、字符串,均可以可以视为序列\n序列支持切片,即:列表、元组、字符串,均支持进行切片操作 切片:从一个序列中,取出一个子序列\n语法\n语法:序列[起始下标:结束下标:步长] 表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:\n起始下标表示从何处开始,可以留空,留空视作从头开始结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾步长表示,依次取元素的间隔\n步长1表示,一个个取元素 步长2表示,每次跳过1个元素取 步长N表示,每次跳过N-1个元素取 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)\n\n注意: 此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)\n\n案例\n\n集合\n概要\n集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序\n语法\n1、定义集合字面量 {元素,元素,元素} 2、定义集合变量 变量名称={元素,元素,元素} 3、定义空集合 变量名称=set()\n常见方法\n添加新元素\n语法:集合.add(元素)。将指定元素,添加到集合内 结果:集合本身被修改,添加了新元素\n\n移除元素\n语法:集合.remove(元素),将指定元素,从集合内移除 结果:集合本身被修改,移除了元素\n\n从集合中随机取出元素\n语法:集合.popO,功能,从集合中随机取出一个元素 结果:会得到一个元素的结果。同时集合本身被修改,元素被移除\n\n清空集合\n语法:集合.clear0,功能,清空集合 结果:集合本身被清空\n\n取出2个集合的差集\n语法:集合1.difference(集合2), 功能:取出集合1和集合2的差集(集合1有而集合2没有的) 结果:得到一个新集合,集合1和集合2不变\n\n消除2个集合的差集\n语法:集合1.difference_update(集合2) 功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。 结果:集合1被修改,集合2不变\n\n2个集合合并\n语法:集合1.union(集合2) 功能:将集合1和集合2组合成新集合 结果:得到新集合,集合1和集合2不变\n\n查看集合的元素数量\n语法:len(集合) 功能:统计集合内有多少元素 结果:得到一个整数结果\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标素引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环\n字典\n定义\n字典的定义,同样使用{},不过存储的元素是一个个的:键值对。\n语法\n1、定义字典字面量 {key:value , key:value , … ,key:value}\n2、定义字典变量 my_dict = {key: value , key: value , … , key:value}\n3、定义空字典 my_dict={} #空字典定义方式1 my_dict= dict() #空字典定义方式2\n使用{}存储元素,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和value可以是任意类型的数据(key不可为字典)Key不可重复,重复会对原有数据覆盖\n\n字典的嵌套\n字典的Key和Value可以是任意数据类型(Key不可为字典)。那么,就表明,字典是可以嵌套的\n常用方法\n获取\n字典同集合一样,不可以使用下标索引。但是字典可以通过Key值来取得对应的Value\n\n新增元素\n语法:字典[Key]=Value,结果:字典被修改,新增了元素\n\n更新元素\n语法:字典[Key]=Value,结果:字典被修改,元素被更新 注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值\n\n删除元素\n语法:字典.pop(Key), 结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除\n\n清空字典\n语法:字典.clear(),结果:字典被修改,元素被清空\n\n获取全部的key\n语法:字典.keys(),结果:得到字典中的全部Key\n\n遍历字典\n语法:for key in字典.keys()\n\n计算字典内的全部元素(键值对)数量\n语法:len(字典) 结果:得到一个整数,表示字典内元素(键值对)的数量\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据每一份数据是Key-Value键值对可以通过Key获取到Value,Key不可重复(重复会覆盖)不支持下标索引可以修改(增加或删除更新元素等)支持for循环,不支持while循环\n容器对比\n分类\n是否支持下标索引\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否支持重复元素:\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否可以修改\n支持:列表、集合、字典 不支持:元组、字符串\n对比\n\n应用场景\n列表:一批数据,可修改、可重复的存储场景元组:一批数据,不可修改、可重复的存储场景字符串:一串字符串的存储场景集合:一批数据,去重存储场景字典:一批数据,可用Key检索Value的存储场景\n容器通用功能\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n 确定要放弃本次机会?\n \n福利倒计时\n\n\n:\n\n:\n\n\n\n\n\n立减 ¥\n\n\n普通VIP年卡可用\n\n立即使用\n\n\n\n\n\n\n\n\n 小码农0912\n \n\n\n\n关注\n关注\n\n\n\n\n\n\n\n\n\n\n 22\n \n\n点赞\n\n\n\n\n\n\n\n踩\n\n\n\n\n\n\n\n 28\n \n\n\n\n\n 收藏\n \n\n\n\n\n 觉得还不错?\n \n 一键收藏\n \n\n\n\n\n\n\n\n知道了\n\n\n\n\n 0\n \n\n评论\n\n\n\n\n分享\n\n\n\n\n复制链接\n\n\n分享到 QQ\n\n\n分享到新浪微博\n\n\n\n\n扫一扫\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n举报\n\n\n\n\n\n举报\n\n\n\n\n\n\n\n\n专栏目录\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\nPython 5类数据容器总结\n\n\n\n\nqq1226546902的博客\n\n\n07-19\n\n\t\t\t\t\t1170\n\t\t\t\t\t\n\n\n\n\n\n注意:字典转换为其他类型时,除去str类型,都会丢失注意:字典转换为其他类型时,除去str类型,都会丢失Value值。根据ASCII表进行比较。\n\n\n\n\n\n\n\n\n参与评论\n您还未登录,请先\n登录\n后发表或查看评论\n\n\n\n\n\n\n\n\n\n知识笔记:Python数据容器(五)\n\n\n\n\n11-29\n\n\n\n\n\n内容概要:本文详细介绍了 Python 中五种主要的数据容器类型——列表、元组、字符串、集合与字典。对于每种数据容器,讲解了其基本格式、操作方法、特点及应用场景。其中包括创建数据容器的基本语法、常用操作方法...\n\n\n\n\n\n\n\n\n\nPython数据容器\n\n\n\n\nm0_75011423的博客\n\n\n04-15\n\n\t\t\t\t\t1147\n\t\t\t\t\t\n\n\n\n\n\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标索引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环使用{}存储原始,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和Value可以是任意类型的数据(key不可为字典)\n\n\n\n\n\n\n\n\n\n\n\npython数据容器详解\n\n\n\n\nqq_49231165的博客\n\n\n02-07\n\n\t\t\t\t\t2008\n\t\t\t\t\t\n\n\n\n\n\npython数据容器详解,包括列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict),对以上数据容器进行讲解对比\n\n\n\n\n\n\n\n\n\n【Python基础】Python数据容器(列表)\n\n\n\n\nPython、C++、HTML、Java\n\n\n06-08\n\n\t\t\t\t\t1896\n\t\t\t\t\t\n\n\n\n\n\n在Python中列表的定义如下:列表是内置有序、可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开.本章我们来学习列表的定义及相关操作。\n\n\n\n\n\n\n\n\n\nPython之数据容器\n\n\n\n\nm0_60121089的博客\n\n\n10-23\n\n\t\t\t\t\t3499\n\t\t\t\t\t\n\n\n\n\n\n列表的定义语法:[元素,元素,元素,...]元素:数据容器内的每一份数据,都称之为元素。元素的数据类型无限制,甚至元素可以是列表,这样就定义了嵌套列表。字典可以提供基于Key检索Value的场景实现,就像查字典一样。字典的定义语法:# 定义字典my_dict = {"张三":99,"李四":88,"王五":77}# 内容:{\'张三\': 99, \'李四\': 88, \'王五\': 77},类型:\n\n\n\n\n\n\n\n\n\nPython基础——第六章:Python数据容器\n\n\n\n\nc0rdXy的博客\n\n\n08-17\n\n\t\t\t\t\t1560\n\t\t\t\t\t\n\n\n\n\n\n本课程无缝衔接数据开发、人工智能、数据分析,后续挑战30w年薪。从零基础开始入门学习Python,开发环境使用最新版python3.10,从软件下载,IDE使用,让学生一步步了解Python,掌握Python基础语法,掌握代码编写的规范和技巧,Bug调试能力,用Python第三方库做出可视化图表。课程+配套练习学练结合,锻炼学生的自主解决问题的能力和举一反三能力,课堂生动有趣,不枯燥。...........................\n\n\n\n\n\n\n\n\n\nPython——数据容器\n\n\n\n\nAugust_._的博客\n\n\n12-01\n\n\t\t\t\t\t1970\n\t\t\t\t\t\n\n\n\n\n\n数据容器 列表 元组 字符串 序列 集合 字典\n\n\n\n\n\n\n\n\n\npython中数据容器总结\n\n\n\n\nqq_58739767的博客\n\n\n05-05\n\n\t\t\t\t\t1407\n\t\t\t\t\t\n\n\n\n\n\n五类数据容器均支持for循环遍历;列表、元组、字符串支持while循环,集合字典不支持while循环(无法下标索引)。\n\n\n\n\n\n\n\n\n\nPython基础(十六、数据容器汇总)\n热门推荐\n\n\n\n\nqq_35716085的博客\n\n\n01-04\n\n\t\t\t\t\t2万+\n\t\t\t\t\t\n\n\n\n\n\nsorted(容器,reverse=True)\n\n\n\n\n\n\n\n\n\nPython基础-数据容器(超详细版!!!)\n\n\n\n\n2301_80162458的博客\n\n\n07-28\n\n\t\t\t\t\t2004\n\t\t\t\t\t\n\n\n\n\n\n本文讲解Python数据容器基础,涵盖列表、元组、字符串、集合、字典等多种数据容器类型。从基础的定义、特点、操作方法到实际案例练习,详细且全面。无论是刚入门的 Python 新手,还是需要复习巩固的开发者,都能通过本文有所收获。\n\n\n\n\n\n\n\n\n\nPython数据容器入门.md\n\n\n\n\n08-22\n\n\n\n\n\n### Python 数据容器详解 在 Python 编程语言中,数据容器是极其重要的组成部分,它们用于组织和管理数据。本文将详细介绍 Python 中最常用的三种数据容器:列表(List)、元组(Tuple)和字典(Dictionary),并...\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 4:集合 - 高效处理去重数据\n\n\n\n\n05-26\n\n\n\n\n\n还在为数据去重而烦恼吗? Python 集合,一键去重,高效处理,让你的代码更简洁、运行更快!\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 3:字典 - 数据存储的万能工具\n\n\n\n\n05-26\n\n\n\n\n\n还在为复杂数据的存储和查找而烦恼吗? Python 字典,Key-Value 键值对,数据存储的万能工具,让你的代码更简洁、更高效!\n\n\n\n\n\n\n\n\n\n从零开始重新学习 Python 3:列表、元组、字典?Python 数据容器大揭秘!\n\n\n\n\n05-25\n\n\n\n\n\n还在为数据存储而烦恼?Python 数据容器,帮你轻松解决数据管理难题!\n\n\n\n\n\n\n\n\n\nPython说明\n\n\n\n\n2501_90888019的博客\n\n\n03-14\n\n\t\t\t\t\t1618\n\t\t\t\t\t\n\n\n\n\n\n2. **跨平台**:Python 可以在多种操作系统上运行,如 Windows、macOS、Linux 等。3. **丰富的库**:Python 拥有庞大的标准库和第三方库,涵盖了从 Web 开发到数据科学的多个领域。- **数据科学**:使用 NumPy、Pandas、Matplotlib 等库进行数据分析和可视化。- **机器学习**:使用 TensorFlow、PyTorch、Scikit-learn 等库。1. **易读易写**:Python 的语法简洁明了,代码可读性高。\n\n\n\n\n\n\n\n\n\n爬虫(requsets)笔记\n最新发布\n\n\n\n\nm0_63272315的博客\n\n\n03-18\n\n\t\t\t\t\t1382\n\t\t\t\t\t\n\n\n\n\n\n一个类型六个属性r.text获取网站源码r.encoding访问或定制编码方式r.url获取请求的urlr.content响应的字节类型响应的状态码r.headers响应的头信息。\n\n\n\n\n\n\n\n\n\npython二级每日十题(1)\n\n\n\n\npianmian1的博客\n\n\n03-17\n\n\t\t\t\t\t593\n\t\t\t\t\t\n\n\n\n\n\n在Python中len()函数是输出字符串长度,x=\'R\\0S\\0T\',分别有R、\\0、S、\\0和T 5个字符,所以len(x)=5,print(len(x))是将5打印出来。先用import导入turtle库,for循环依次将1~6赋给变量i,i分别被依次赋值为1,2,3,4,5,6,fd()是画笔当前的前进方向,left()是画笔移动的角度,故绘制出来的是六边形.故选c,博主正确。反之输出i的值,故输出结果为:1,2,3,5,,故选c项,3=78,78//6=13,12+13=25.故选c项,\n\n\n\n\n\n\n\n\n\npython|结构的模式匹配match|同步迭代\n\n\n\n\nm0_73658649的博客\n\n\n03-16\n\n\t\t\t\t\t351\n\t\t\t\t\t\n\n\n\n\n\n在 Python 中,是一种强大的功能,用于根据数据的结构或内容进行匹配和处理。Python 3.10 引入了match语句,使得模式匹配更加直观和灵活。模式匹配可以用于处理复杂的数据结构,如列表、字典、类实例等。\n\n\n\n\n\n\n\n\n\nPython 数据容器 编写\n\n\n\n\n10-09\n\n\n\n\n\n在Python中,数据容器是一组用于存储和组织数据的数据结构,它们支持不同的操作,如添加、删除元素以及查找等。以下是几种常见的Python数据容器:\n\n1. **列表(List)**:动态数组,可以容纳任意类型的元素,通过索引访问元素,并允许元素的增删改查。\n\n ```python\n numbers = [1, 2, 3]\n ```\n\n2. **元组(Tuple)**:类似于列表,不可变序列,一旦创建就不能修改。\n\n ```python\n fruits = (\'apple\', \'banana\', \'orange\')\n ```\n\n3. **集合(Set)**:无序且不包含重复元素的集合,常用于去重和成员判断。\n\n ```python\n unique_elements = {1, 2, 3}\n ```\n\n4. **字典(Dictionary)**:键值对的映射,通过键快速查找对应的值,键必须是唯一的。\n\n ```python\n person_info = {\'name\': \'Alice\', \'age\': 25}\n ```\n\n5. **列表推导式(List Comprehension)**:一种简洁的创建新列表的方式,利用已有的列表生成新的列表。\n\n6. **字典推导式(Dict Comprehension)**:类似,但用于创建新的字典。\n\n7. **集合推导式(Set Comprehension)**:用于创建新的集合。\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n小码农0912\n\n\n\n\nCSDN认证博客专家\n\n\nCSDN认证企业博客\n\n\n\n码龄8年\n\n\n\n 暂无认证\n \n\n\n\n\n\n\n\n204\n原创\n\n\n\n\n8672\n周排名\n\n\n\n\n8620\n总排名\n\n\n\n21万+\n访问\n\n\n\n\n\n\n等级\n\n\n\n\n\n4315\n积分\n\n\n915\n粉丝\n\n\n1917\n获赞\n\n\n12\n评论\n\n\n1730\n收藏\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n私信\n\n\n关注\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n热门文章\n\n\n\n\n\t\t\t\tJava中List集合中contains()与indexOf()的区别\n\t\t\t\t\t\n16968\n\n\n\n\n\t\t\t\tPrometheus Gauge使用\n\t\t\t\t\t\n6441\n\n\n\n\n\t\t\t\tjava截取字符串方式:split()与subString()方法\n\t\t\t\t\t\n5714\n\n\n\n\n\t\t\t\t高可用系统架构总结\n\t\t\t\t\t\n3394\n\n\n\n\n\t\t\t\t使用JS完成注册页面表单简单校验\n\t\t\t\t\t\n3287\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n最新评论\n\n\n\n序列化和反序列化\n\n有点浪的程序员: \nserialVersionUID 不是被 static 变量修饰了吗?为什么还会被“序列化”?\nstatic 修饰的变量是静态变量,位于方法区,本身是不会被序列化的。 static 变量是属于类的而不是对象。你反序列之后,static 变量的值就像是默认赋予给了对象一样,看着就像是 static 变量被序列化,实际只是假象罢了。\n---\n对象序列化是为了jvm在停止运行时保存对象的状态,serialVersionUID 位于方法区,jvm停止运行时,那它不就也会丢失吗\n\n\n\nJVM问题总结\n\n小码农0912: \n本篇写的很不好, 见谅!\n\n有大神可以指点下吗\n\n\n\n从IO多路复用到redis线程模型\n\nCSDN-Ada助手: \n恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/615727512。 \n\n\n\n算法题1 — 寻找两数之和为目标值\n\nCSDN-Ada助手: \n一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, \n更多创作活动请看:\n物联网技术正在如何影响我们的生活: https://activity.csdn.net/creatActivity?id=10421?utm_source=csdn_ai_ada_redpacket\n\t可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket\n\tMicrosoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket\n\n全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket\n\n\n\n\n如何解决 顺序消费、重复消费\n\n小码农0912: \n马上自己写一篇新的\n\n\n\n\n\n\n大家在看\n\n\n\n\n\t\t\t\t掉进代码世界的90分钟\n\t\t\t\t\t\n303\n\n\n\n\n\t\t\t\t读取本地rawfile的文件数据\n \n\n\n\n\t\t\t\t仿人格斗机器人设计报告(四)\n\t\t\t\t\t\n461\n\n\n\n\n\t\t\t\t达梦数据库主备切换技术解析与实践指南\n \n\n\n\n\t\t\t\tspringboot基于JAVA Web房产中介公司管理系统的设计与实现\n \n\n\n\n\n\n最新文章\n\n\n\nlangchain文本分类\n\n\nAI自动生成数据\n\n\nlangchain从非结构化文本中提取结构化信息\n\n\n\n\n2025\n\n\n\n03月\n36篇\n\n\n\n\n02月\n75篇\n\n\n\n\n01月\n1篇\n\n\n\n2024年1篇\n2023年62篇\n2022年16篇\n2018年9篇\n2017年4篇\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n相关专栏 \n\n\n\n\n\n\n\n\n\n技术研发\n专栏\n\n10 人学习\n\n\n技术研发,主要涵盖Java、Python、SpringBoot、Docker、等相关技术文章以及操作规范\n\n\n\n\n\n\n\n\n\n\npython\n专栏\n\n22 人学习\n\n\n本专栏专注于Python编程的实用性,适用于各个层次的编程爱好者和专业人士。通过分类学习,系统掌握从基础语法到高级算法、数据处理和Web开发的各个方面。每个分类都配有详细的解析和实战案例,帮助读者在实际项目中应用所学知识,提升编程能力和解决问题的思维能力。无论是初学者还是有经验的开发者,都能从中受益\n\n\n\n\n\n\n\n\n\n\n深入浅出AI\n专栏\n\n16 人学习\n\n\n本专栏详细介绍AI习相关知识内容,累计浏览量80w+,专栏内容从入门到实战,包括各类机器学习、深度学习知识点总结,内容含概CV、NLP、大模型、推荐方向等,可供AI入门者与工作人员学习。\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n评论\n\n\n\n\n被折叠的\xa0\xa0条评论\n\t\t 为什么被折叠?\n\n到【灌水乐园】发言\n\n\n\n查看更多评论\n\n\n\n\n\n\n 添加红包\n \n\n\n\n祝福语\n\n\n\n\n请填写红包祝福语或标题\n\n\n红包数量\n\n\n个\n\n红包个数最小为10个\n\n\n红包总金额\n\n\n元\n\n红包金额最低5元\n\n\n余额支付\n\n 当前余额3.43元\n 前往充值 >\n\n\n\n\n 需支付:10.00元\n \n取消\n确定\n\n\n\n\n\n\n\n下一步\n\n\n\n知道了\n\n\n\n\n\n\n\n\n\n\n成就一亿技术人!\n\n\n\n\n\n\n 领取后你会自动成为博主和红包主的粉丝\n 规则\n\n\n\n\n\n\n\n\n\n\nhope_wisdom 发出的红包\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n实付元\n使用余额支付\n\n\n\n\n点击重新获取\n\n\n扫码支付\n\n\n\n\n\n\n\n\n\n\n\n钱包余额\n0\n\n\n\n\n抵扣说明:\n 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。\n\n\n\n\n余额充值\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')]
This blog post from CSDN discusses the five main data container types in Python: lists, tuples, strings, sets, and dictionaries. It provides an overview of their characteristics, usage scenarios, and common methods. The post emphasizes that Python data containers can hold elements of different types and allows for modifications, except for tuples and strings, which are immutable. It also touches on the concept of sequence slicing and the importance of understanding the differences between these container types for effective programming.
进程已结束,退出代码为 0
stuff案例2
通过提示词生成摘要
import os
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.document_loaders import WebBaseLoader
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
# 设置 USER_AGENT 环境变量
os.environ[
'USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f1--hLNRdKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI(temperature=0)
# 加载我们的文档。我们将使用 WebBaseLoader 来加载博客文章:
loader = WebBaseLoader('https://blog.csdn.net/SO_zxn/article/details/145756382')
# 得到整篇文章
docs = loader.load()
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个摘要器,能将输入的文章进行总结,摘要出关键信息"),
("human", "{text}")
])
chain = {"text": RunnablePassthrough()} | prompt | llm
rest = chain.invoke({'text': docs})
print(rest)
结果:
E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\摘要\demo2.py
USER_AGENT environment variable not set, consider setting it to identify your requests.
content='这篇文章详细介绍了Python中的五种主要数据容器类型:列表、元组、字符串、集合和字典。对于每种数据容器,文章讲解了其基本格式、操作方法、特点及应用场景。列表是一种动态数组,可以容纳任意类型的元素,通过索引访问元素,并允许元素的增删改查。元组类似于列表,是不可变序列,一旦创建就不能修改。字符串是字符的容器,可以存放任意数量的字符,支持下标索引,但不可以修改。集合是无序且不包含重复元素的集合,常用于去重和成员判断。字典是键值对的映射,通过键快速查找对应的值,键必须是唯一的。文章还介绍了列表推导式、字典推导式和集合推导式等创建新数据容器的方式。' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 157, 'prompt_tokens': 8247, 'total_tokens': 8404}, 'model_name': 'glm-4', 'finish_reason': 'stop'} id='run-9660ff52-8ff7-43b5-a3df-d7c940c3acdf-0'
进程已结束,退出代码为 0
stuff案例3
通过提示词生成摘要
import os
from langchain.chains.combine_documents.stuff import StuffDocumentsChain
from langchain.chains.llm import LLMChain
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.document_loaders import WebBaseLoader
from langchain_core.prompts import ChatPromptTemplate
# 设置 USER_AGENT 环境变量
os.environ[
'USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f1975487b9a540bb2f8540732.L45evmXhLNRdKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI(temperature=0)
# 加载我们的文档。我们将使用 WebBaseLoader 来加载博客文章:
loader = WebBaseLoader('https://blog.csdn.net/SO_zxn/article/details/145756382')
# 得到整篇文章
docs = loader.load()
prompt = ChatPromptTemplate.from_messages([
("system", "你是一个摘要器,能将输入的文章进行总结,摘要出关键信息"),
("human", "{text}")
])
llm_chain = LLMChain(llm=llm, prompt=prompt)
chain = StuffDocumentsChain(llm_chain=llm_chain, document_variable_name="text")
rest = chain.invoke({'input_documents': docs})
print(rest)
print(rest['output_text'])
结果:
E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\摘要\demo3.py
USER_AGENT environment variable not set, consider setting it to identify your requests.
E:\learn_work_spaces\PythonProject1\摘要\demo3.py:28: LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use :meth:`~RunnableSequence, e.g., `prompt | llm`` instead.
llm_chain = LLMChain(llm=llm,prompt=prompt)
E:\learn_work_spaces\PythonProject1\摘要\demo3.py:29: LangChainDeprecationWarning: This class is deprecated. Use the `create_stuff_documents_chain` constructor instead. See migration guide here: https://python.langchain.com/docs/versions/migrating_chains/stuff_docs_chain/
chain = StuffDocumentsChain(llm_chain=llm_chain,document_variable_name="text")
{'input_documents': [Document(metadata={'source': 'https://blog.csdn.net/SO_zxn/article/details/145756382', 'title': 'python数据容器-CSDN博客', 'description': '文章浏览阅读853次,点赞22次,收藏28次。一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。字典的定义,同样使用{},不过存储的元素是一个个的:键值对。', 'language': 'zh-CN'}, page_content=' \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器-CSDN博客\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npython数据容器\n\n\n最新推荐文章于\xa02025-03-18 23:56:30\xa0发布\n\n\n\n小码农0912\n\n最新推荐文章于\xa02025-03-18 23:56:30\xa0发布\n\n\n阅读量853\n\n\n\n收藏\n\n 28\n \n\n\n\n\n点赞数\n 22\n \n\n\n\n\n\n\n分类专栏:\npython\n文章标签:\npython\npython数据容器\n\n\n\n\n\n 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。\n \n\n 本文链接:https://blog.csdn.net/SO_zxn/article/details/145756382\n\n\n\n\n版权\n\n\n\n\n\n\n\n\n\n\n\n\n\npython\n专栏收录该内容\n\n\n\n\n\n15 篇文章\n\n\n订阅专栏\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n文章目录\n定义注意\n列表语法案例列表的下表索引注意案例\n列表的方法查询修改插入追加一个元素追加多个元素删除删除某元素在列表中的第一个匹配项清空列表内容统计某元素在列表内的数量统计列表内,有多少元素列表方法汇总特点双重遍历案例\n\n元组概要语法元组的方法注意\n元组特点\n字符串概要字符串常用方法替换字符串的分割字符串的规整操作(去前后空格)字符串的规整操作(去前后指定字符串)统计字符串中某字符串的出现次数统计字符串的长度方法汇总\n特点\n容器序列切片概要语法案例\n集合概要语法常见方法添加新元素移除元素从集合中随机取出元素清空集合取出2个集合的差集消除2个集合的差集2个集合合并查看集合的元素数量\n方法汇总特点\n字典定义语法字典的嵌套常用方法获取新增元素更新元素删除元素清空字典获取全部的key遍历字典计算字典内的全部元素(键值对)数量\n方法汇总特点\n容器对比分类对比应用场景容器通用功能\n\n\n\n定义\n一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。\n注意\n\n数据容器内可以存放不同的数据类型。这点和java是有差别的 容器内可以嵌套容器\n\n数据容器根据特点的不同,如:\n是否支持重复元素是否可以修改是否有序,等\n分为5类,分别是:列表(1ist)、元组(tuple)、字符串(str)、集合(set)、字典(dict)\n列表\n语法\n\n案例\n\n列表的下表索引\n列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增。或者,可以反向索引,也就是从后向前:从-1开始,依次递减。如果列表是嵌套的列表,同样支持下标索引。\n注意\n\n这里倒序的时候与java的不同,java中下标是固定的,倒序遍历时还是以原来的下标获取。\n\n案例\n\n列表的方法\n函数是一个封装的代码单元,可以提供特定功能。 在Python中,如果将函数定义为class(类)的成员,那么函数会称之为:方法\n查询\n查找某元素的下标\n功能:查找指定元素在列表的下标,如果找不到,报错ValueError\n语法:列表.index(元素)\nindex就是列表对象(变量)内置的方法(函数)\n案例:\n\n修改\n修改特定位置(索引)的元素值\n语法:列表[下标]=值\n可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)\n案例: \n插入\n语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素\n案例:\n\n追加一个元素\n语法:列表.append(元素),将指定元素,追加到列表的尾部\n案例:\n\n追加多个元素\n语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部\n案例:\n\n删除\n语法1:del 列表[下标] 语法2:列表.pop(下标)\n案例:\n\n\n删除某元素在列表中的第一个匹配项\n语法:列表.remove(元素)\n\n清空列表内容\n语法:列表.clear()\n\n统计某元素在列表内的数量\n语法:列表.count(元素)\n\n统计列表内,有多少元素\n语法:len(列表) 可以得到一个int数字,表示列表内的元素数量\n\n列表方法汇总\n\n特点\n可以容纳多个元素(上限为2**63-1、9223372036854775807个)可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增加或删除元素等)\n除了点2点其他的和java中数组列表一样\n双重遍历案例\n\n元组\n概要\n元组同列表一样,都是可以封装多个、不同类型的元素在内,但最大的不同点在于:元组一旦定义完成,就不可修改。所以,当我们需要在程序内封装数据,又不希望封装的数据被复改,那么元组就非常合适了。\n语法\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型\n\n\n\n注意:元组只有一个数据,这个数据后面要添加逗号\n\n元组的方法\n\n\n元组由于不可修改的原因,所以方法很少。\n\n案例:\n\n注意\n不可以修改元组的内容,否则会直接报错可以修改元组内的ist的内容(修改元素、增加、删除、反转等)不可以替换list为其它list或其它类型\n元组特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是有序存储的(下标索引)允许重复数据存在不可以修改(增加或删除元素等)支持for循环\n字符串\n概要\n字符串是字符的容器,一个字符串可以存放任意数量的字符。\n和其它容器如:列表、元组一样,字符串也可以通过下标进行访问:\n从前向后,下标从0开始从后向前,下标从-1开始\n同元组一样,字符串是一个:无法修改的数据容器。所以对字符串进行修改、移除、追加均无法完成。如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改。这点和java字符串是一样的,都不能修改。\n字符串常用方法\n替换\n语法:字符串.replace(字符串1,字符串2) 功能:将字符串内的全部:字符串1,替换为字符串2 注意:不是修改字符串本身,而是得到了一个新字符串\n\n字符串的分割\n语法:字符串.split(分隔符字符串) 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中 注意:字符串本身不变,而是得到了一个列表对象\n\n字符串的规整操作(去前后空格)\n语法:字符串.strip()\n\n字符串的规整操作(去前后指定字符串)\n语法:字符串.strip(字符串)\n\n统计字符串中某字符串的出现次数\n语法:字符串.count(字符串)\n\n统计字符串的长度\n语法:len(字符串)\n\n方法汇总\n\n特点\n只可以存储字符串长度任意(取决于内存大小)支持下标索引允许重复字符串存在不可以修改(增加或删除元素等)支持for循环\n基本和列表、元组相同; 不同与列表和元组的在于:字符串容器可以容纳的类型是单一的,只能是字符串类型; 不同于列表,相同于元组的在于:字符串不可修改。\n容器序列切片\n概要\n序列是指:内容连续、有序,可使用下标索引的一类数据容器。列表、元组、字符串,均可以可以视为序列\n序列支持切片,即:列表、元组、字符串,均支持进行切片操作 切片:从一个序列中,取出一个子序列\n语法\n语法:序列[起始下标:结束下标:步长] 表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:\n起始下标表示从何处开始,可以留空,留空视作从头开始结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾步长表示,依次取元素的间隔\n步长1表示,一个个取元素 步长2表示,每次跳过1个元素取 步长N表示,每次跳过N-1个元素取 步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)\n\n注意: 此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)\n\n案例\n\n集合\n概要\n集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序\n语法\n1、定义集合字面量 {元素,元素,元素} 2、定义集合变量 变量名称={元素,元素,元素} 3、定义空集合 变量名称=set()\n常见方法\n添加新元素\n语法:集合.add(元素)。将指定元素,添加到集合内 结果:集合本身被修改,添加了新元素\n\n移除元素\n语法:集合.remove(元素),将指定元素,从集合内移除 结果:集合本身被修改,移除了元素\n\n从集合中随机取出元素\n语法:集合.popO,功能,从集合中随机取出一个元素 结果:会得到一个元素的结果。同时集合本身被修改,元素被移除\n\n清空集合\n语法:集合.clear0,功能,清空集合 结果:集合本身被清空\n\n取出2个集合的差集\n语法:集合1.difference(集合2), 功能:取出集合1和集合2的差集(集合1有而集合2没有的) 结果:得到一个新集合,集合1和集合2不变\n\n消除2个集合的差集\n语法:集合1.difference_update(集合2) 功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。 结果:集合1被修改,集合2不变\n\n2个集合合并\n语法:集合1.union(集合2) 功能:将集合1和集合2组合成新集合 结果:得到新集合,集合1和集合2不变\n\n查看集合的元素数量\n语法:len(集合) 功能:统计集合内有多少元素 结果:得到一个整数结果\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标素引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环\n字典\n定义\n字典的定义,同样使用{},不过存储的元素是一个个的:键值对。\n语法\n1、定义字典字面量 {key:value , key:value , … ,key:value}\n2、定义字典变量 my_dict = {key: value , key: value , … , key:value}\n3、定义空字典 my_dict={} #空字典定义方式1 my_dict= dict() #空字典定义方式2\n使用{}存储元素,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和value可以是任意类型的数据(key不可为字典)Key不可重复,重复会对原有数据覆盖\n\n字典的嵌套\n字典的Key和Value可以是任意数据类型(Key不可为字典)。那么,就表明,字典是可以嵌套的\n常用方法\n获取\n字典同集合一样,不可以使用下标索引。但是字典可以通过Key值来取得对应的Value\n\n新增元素\n语法:字典[Key]=Value,结果:字典被修改,新增了元素\n\n更新元素\n语法:字典[Key]=Value,结果:字典被修改,元素被更新 注意:字典Key不可以重复,所以对已存在的Key执行上述操作,就是更新Value值\n\n删除元素\n语法:字典.pop(Key), 结果:获得指定Key的Value,同时字典被修改,指定Key的数据被删除\n\n清空字典\n语法:字典.clear(),结果:字典被修改,元素被清空\n\n获取全部的key\n语法:字典.keys(),结果:得到字典中的全部Key\n\n遍历字典\n语法:for key in字典.keys()\n\n计算字典内的全部元素(键值对)数量\n语法:len(字典) 结果:得到一个整数,表示字典内元素(键值对)的数量\n\n方法汇总\n\n特点\n可以容纳多个数据可以容纳不同类型的数据每一份数据是Key-Value键值对可以通过Key获取到Value,Key不可重复(重复会覆盖)不支持下标索引可以修改(增加或删除更新元素等)支持for循环,不支持while循环\n容器对比\n分类\n是否支持下标索引\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否支持重复元素:\n支持:列表、元组、字符串-序列类型 不支持:集合、字典-非序列类型\n是否可以修改\n支持:列表、集合、字典 不支持:元组、字符串\n对比\n\n应用场景\n列表:一批数据,可修改、可重复的存储场景元组:一批数据,不可修改、可重复的存储场景字符串:一串字符串的存储场景集合:一批数据,去重存储场景字典:一批数据,可用Key检索Value的存储场景\n容器通用功能\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n 确定要放弃本次机会?\n \n福利倒计时\n\n\n:\n\n:\n\n\n\n\n\n立减 ¥\n\n\n普通VIP年卡可用\n\n立即使用\n\n\n\n\n\n\n\n\n 小码农0912\n \n\n\n\n关注\n关注\n\n\n\n\n\n\n\n\n\n\n 22\n \n\n点赞\n\n\n\n\n\n\n\n踩\n\n\n\n\n\n\n\n 28\n \n\n\n\n\n 收藏\n \n\n\n\n\n 觉得还不错?\n \n 一键收藏\n \n\n\n\n\n\n\n\n知道了\n\n\n\n\n 0\n \n\n评论\n\n\n\n\n分享\n\n\n\n\n复制链接\n\n\n分享到 QQ\n\n\n分享到新浪微博\n\n\n\n\n扫一扫\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n举报\n\n\n\n\n\n举报\n\n\n\n\n\n\n\n\n专栏目录\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n知识笔记:Python数据容器(五)\n\n\n\n\n11-29\n\n\n\n\n\n内容概要:本文详细介绍了 Python 中五种主要的数据容器类型——列表、元组、字符串、集合与字典。对于每种数据容器,讲解了其基本格式、操作方法、特点及应用场景。其中包括创建数据容器的基本语法、常用操作方法...\n\n\n\n\n\n\n\n\n参与评论\n您还未登录,请先\n登录\n后发表或查看评论\n\n\n\n\n\n\n\n\n\nPython数据容器入门.md\n\n\n\n\n08-22\n\n\n\n\n\n### Python 数据容器详解 在 Python 编程语言中,数据容器是极其重要的组成部分,它们用于组织和管理数据。本文将详细介绍 Python 中最常用的三种数据容器:列表(List)、元组(Tuple)和字典(Dictionary),并...\n\n\n\n\n\n\n\n\n\nPython数据容器\n\n\n\n\nm0_75011423的博客\n\n\n04-15\n\n\t\t\t\t\t1147\n\t\t\t\t\t\n\n\n\n\n\n元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序可以容纳多个数据可以容纳不同类型的数据(混装)数据是无序存储的(不支持下标索引)不允许重复数据存在可以修改(增加或删除元素等)支持for循环使用{}存储原始,每一个元素是一个键值对每一个键值对包含Key和Value(用冒号分隔)键值对之间使用逗号分隔Key和Value可以是任意类型的数据(key不可为字典)\n\n\n\n\n\n\n\n\n\n\n\npython数据容器详解\n\n\n\n\nqq_49231165的博客\n\n\n02-07\n\n\t\t\t\t\t2008\n\t\t\t\t\t\n\n\n\n\n\npython数据容器详解,包括列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict),对以上数据容器进行讲解对比\n\n\n\n\n\n\n\n\n\n【Python基础】Python数据容器(列表)\n\n\n\n\nPython、C++、HTML、Java\n\n\n06-08\n\n\t\t\t\t\t1896\n\t\t\t\t\t\n\n\n\n\n\n在Python中列表的定义如下:列表是内置有序、可变序列,列表的所有元素放在一对中括号“[]”中,并使用逗号分隔开.本章我们来学习列表的定义及相关操作。\n\n\n\n\n\n\n\n\n\nPython之数据容器\n\n\n\n\nm0_60121089的博客\n\n\n10-23\n\n\t\t\t\t\t3499\n\t\t\t\t\t\n\n\n\n\n\n列表的定义语法:[元素,元素,元素,...]元素:数据容器内的每一份数据,都称之为元素。元素的数据类型无限制,甚至元素可以是列表,这样就定义了嵌套列表。字典可以提供基于Key检索Value的场景实现,就像查字典一样。字典的定义语法:# 定义字典my_dict = {"张三":99,"李四":88,"王五":77}# 内容:{\'张三\': 99, \'李四\': 88, \'王五\': 77},类型:\n\n\n\n\n\n\n\n\n\nPython基础——第六章:Python数据容器\n\n\n\n\nc0rdXy的博客\n\n\n08-17\n\n\t\t\t\t\t1560\n\t\t\t\t\t\n\n\n\n\n\n本课程无缝衔接数据开发、人工智能、数据分析,后续挑战30w年薪。从零基础开始入门学习Python,开发环境使用最新版python3.10,从软件下载,IDE使用,让学生一步步了解Python,掌握Python基础语法,掌握代码编写的规范和技巧,Bug调试能力,用Python第三方库做出可视化图表。课程+配套练习学练结合,锻炼学生的自主解决问题的能力和举一反三能力,课堂生动有趣,不枯燥。...........................\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 4:集合 - 高效处理去重数据\n\n\n\n\n05-26\n\n\n\n\n\n还在为数据去重而烦恼吗? Python 集合,一键去重,高效处理,让你的代码更简洁、运行更快!\n\n\n\n\n\n\n\n\n\n从零开始学习 Python 3 - Python 数据容器大揭秘 3:字典 - 数据存储的万能工具\n\n\n\n\n05-26\n\n\n\n\n\n还在为复杂数据的存储和查找而烦恼吗? Python 字典,Key-Value 键值对,数据存储的万能工具,让你的代码更简洁、更高效!\n\n\n\n\n\n\n\n\n\n从零开始重新学习 Python 3:列表、元组、字典?Python 数据容器大揭秘!\n\n\n\n\n05-25\n\n\n\n\n\n还在为数据存储而烦恼?Python 数据容器,帮你轻松解决数据管理难题!\n\n\n\n\n\n\n\n\n\nPython说明\n\n\n\n\n2501_90888019的博客\n\n\n03-14\n\n\t\t\t\t\t1626\n\t\t\t\t\t\n\n\n\n\n\n2. **跨平台**:Python 可以在多种操作系统上运行,如 Windows、macOS、Linux 等。3. **丰富的库**:Python 拥有庞大的标准库和第三方库,涵盖了从 Web 开发到数据科学的多个领域。- **数据科学**:使用 NumPy、Pandas、Matplotlib 等库进行数据分析和可视化。- **机器学习**:使用 TensorFlow、PyTorch、Scikit-learn 等库。1. **易读易写**:Python 的语法简洁明了,代码可读性高。\n\n\n\n\n\n\n\n\n\n爬虫(requsets)笔记\n\n\n\n\nm0_63272315的博客\n\n\n03-18\n\n\t\t\t\t\t1390\n\t\t\t\t\t\n\n\n\n\n\n一个类型六个属性r.text获取网站源码r.encoding访问或定制编码方式r.url获取请求的urlr.content响应的字节类型响应的状态码r.headers响应的头信息。\n\n\n\n\n\n\n\n\n\npython二级每日十题(1)\n\n\n\n\npianmian1的博客\n\n\n03-17\n\n\t\t\t\t\t610\n\t\t\t\t\t\n\n\n\n\n\n在Python中len()函数是输出字符串长度,x=\'R\\0S\\0T\',分别有R、\\0、S、\\0和T 5个字符,所以len(x)=5,print(len(x))是将5打印出来。先用import导入turtle库,for循环依次将1~6赋给变量i,i分别被依次赋值为1,2,3,4,5,6,fd()是画笔当前的前进方向,left()是画笔移动的角度,故绘制出来的是六边形.故选c,博主正确。反之输出i的值,故输出结果为:1,2,3,5,,故选c项,3=78,78//6=13,12+13=25.故选c项,\n\n\n\n\n\n\n\n\n\npython|结构的模式匹配match|同步迭代\n\n\n\n\nm0_73658649的博客\n\n\n03-16\n\n\t\t\t\t\t358\n\t\t\t\t\t\n\n\n\n\n\n在 Python 中,是一种强大的功能,用于根据数据的结构或内容进行匹配和处理。Python 3.10 引入了match语句,使得模式匹配更加直观和灵活。模式匹配可以用于处理复杂的数据结构,如列表、字典、类实例等。\n\n\n\n\n\n\n\n\n\npython日期\n最新发布\n\n\n\n\nkongkong的专栏\n\n\n03-18\n\n\t\t\t\t\t139\n\t\t\t\t\t\n\n\n\n\n\npython日期例子\n\n\n\n\n\n\n\n\n\nCUDA内核调优工具ncu的详细使用教程\n\n\n\n\nweixin_42849849的博客\n\n\n03-16\n\n\t\t\t\t\t462\n\t\t\t\t\t\n\n\n\n\n\nNVIDIA Nsight Compute是优化CUDA内核的强大工具,通过命令行和GUI可以深入分析性能瓶颈。结合不同选项和功能,开发者可以全面了解CUDA程序的性能表现并进行优化。更多信息请参考官方文档。\n\n\n\n\n\n\n\n\n\nPython:项目相对路径\n\n\n\n\nnisidjndn的博客\n\n\n03-16\n\n\t\t\t\t\t323\n\t\t\t\t\t\n\n\n\n\n\nPython项目中的相对路径和绝对路径。\n\n\n\n\n\n\n\n\n\nAI入门7:python三种API方式调用本地Ollama+DeepSeek\n\n\n\n\n2501_90561511的博客\n\n\n03-14\n\n\t\t\t\t\t1658\n\t\t\t\t\t\n\n\n\n\n\npython三种API方式调用本地Ollama+DeepSeek:openai、requests、ollama api。\n\n\n\n\n\n\n\n\n\nconda的基本使用及pycharm里设置conda环境\n\n\n\n\nhsyhcr的博客\n\n\n03-15\n\n\t\t\t\t\t709\n\t\t\t\t\t\n\n\n\n\n\n把your_env_name换成实际的conda环境名称,python=后边的根据自己的需要,选择python的版本。如果右下角py37前边是绿圈圈,就说明你设置成功啦!比如我选的是py37这个环境。\n\n\n\n\n\n\n\n\n\npython socket库详解\n\n\n\n\nmosquito_lover1的专栏\n\n\n03-15\n\n\t\t\t\t\t413\n\t\t\t\t\t\n\n\n\n\n\nprint("接收到数据:", data.decode())- accept():接受一个连接,返回一个新的套接字对象和客户端地址。- sendto(data, address):发送数据到指定的地址。print("接收到数据:", data.decode())print("接收到数据:", data.decode())print("接收到数据:", data.decode())使用 socket.socket()函数可以创建一个套接字对象。- bind(address):将套接字绑定到指定的地址和端口。\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n小码农0912\n\n\n\n\n\n 博客等级\n \n\n\n码龄8年\n\n\n\n\n\n\n204\n原创\n\n\n\n1918\n点赞\n\n\n1730\n收藏\n\n\n915\n粉丝\n\n\n\n\n关注\n\n\n私信\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n热门文章\n\n\n\n\n\t\t\t\tJava中List集合中contains()与indexOf()的区别\n\t\t\t\t\t\n16968\n\n\n\n\n\t\t\t\tPrometheus Gauge使用\n\t\t\t\t\t\n6441\n\n\n\n\n\t\t\t\tjava截取字符串方式:split()与subString()方法\n\t\t\t\t\t\n5714\n\n\n\n\n\t\t\t\t高可用系统架构总结\n\t\t\t\t\t\n3394\n\n\n\n\n\t\t\t\t使用JS完成注册页面表单简单校验\n\t\t\t\t\t\n3287\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n最新评论\n\n\n\n序列化和反序列化\n\n有点浪的程序员: \nserialVersionUID 不是被 static 变量修饰了吗?为什么还会被“序列化”?\nstatic 修饰的变量是静态变量,位于方法区,本身是不会被序列化的。 static 变量是属于类的而不是对象。你反序列之后,static 变量的值就像是默认赋予给了对象一样,看着就像是 static 变量被序列化,实际只是假象罢了。\n---\n对象序列化是为了jvm在停止运行时保存对象的状态,serialVersionUID 位于方法区,jvm停止运行时,那它不就也会丢失吗\n\n\n\nJVM问题总结\n\n小码农0912: \n本篇写的很不好, 见谅!\n\n有大神可以指点下吗\n\n\n\n从IO多路复用到redis线程模型\n\nCSDN-Ada助手: \n恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/615727512。 \n\n\n\n算法题1 — 寻找两数之和为目标值\n\nCSDN-Ada助手: \n一定要坚持创作更多高质量博客哦, 小小红包, 以资鼓励, \n更多创作活动请看:\n物联网技术正在如何影响我们的生活: https://activity.csdn.net/creatActivity?id=10421?utm_source=csdn_ai_ada_redpacket\n\t可持续能源技术真的能改变世界吗?: https://activity.csdn.net/creatActivity?id=10425?utm_source=csdn_ai_ada_redpacket\n\tMicrosoft Edge功能测评!: https://activity.csdn.net/creatActivity?id=10403?utm_source=csdn_ai_ada_redpacket\n\n全部创作活动: https://mp.csdn.net/mp_blog/manage/creative?utm_source=csdn_ai_ada_redpacket\n\n\n\n\n如何解决 顺序消费、重复消费\n\n小码农0912: \n马上自己写一篇新的\n\n\n\n\n\n\n大家在看\n\n\n\n\n\t\t\t\t蓝桥杯题目——智慧古树的预言\n \n\n\n\n\t\t\t\t【JUC并发编程】\n \n\n\n\n\t\t\t\t第七章 排序算法法法\n \n\n\n\n\t\t\t\tGraphCube、Spark和深度学习技术赋能快消行业关键运营环节\n\t\t\t\t\t\n276\n\n\n\n\n\t\t\t\t《初级统计师》考试资料分享,附答案\n \n\n\n\n\n\n最新文章\n\n\n\nlangchain文本分类\n\n\nAI自动生成数据\n\n\nlangchain从非结构化文本中提取结构化信息\n\n\n\n\n2025\n\n\n\n03月\n36篇\n\n\n\n\n02月\n75篇\n\n\n\n\n01月\n1篇\n\n\n\n2024年1篇\n2023年62篇\n2022年16篇\n2018年9篇\n2017年4篇\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n相关专栏 \n\n\n\n\n\n\n\n\n\n技术研发\n专栏\n\n10 人学习\n\n\n技术研发,主要涵盖Java、Python、SpringBoot、Docker、等相关技术文章以及操作规范\n\n\n\nPython与容器化部署\n \n\n\n\n\n\n\n\n\n\n\npython\n专栏\n\n22 人学习\n\n\n本专栏专注于Python编程的实用性,适用于各个层次的编程爱好者和专业人士。通过分类学习,系统掌握从基础语法到高级算法、数据处理和Web开发的各个方面。每个分类都配有详细的解析和实战案例,帮助读者在实际项目中应用所学知识,提升编程能力和解决问题的思维能力。无论是初学者还是有经验的开发者,都能从中受益\n\n\n\nPython 数据容器:列表与元组的深度比较及应用场景解析\n \n\n\n\n\n\n\n\n\n\n\n深入浅出AI\n专栏\n\n16 人学习\n\n\n本专栏详细介绍AI习相关知识内容,累计浏览量80w+,专栏内容从入门到实战,包括各类机器学习、深度学习知识点总结,内容含概CV、NLP、大模型、推荐方向等,可供AI入门者与工作人员学习。\n\n\n\nPython数据分析与挖掘实战总结\n \n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n分类专栏\n\n\n\n\n\n\n\n\n AI应用开发\n \n\n14篇\n\n\n\n\n\n\n python\n \n\n15篇\n\n\n\n\n\n\n k8s\n \n\n7篇\n\n\n\n\n\n\n docker\n \n\n6篇\n\n\n\n\n\n\n java并发编程\n \n\n17篇\n\n\n\n\n\n\n springboot\n \n\n3篇\n\n\n\n\n\n\n springcloud\n \n\n4篇\n\n\n\n\n\n\n netty\n \n\n7篇\n\n\n\n\n\n\n skywalking\n \n\n12篇\n\n\n\n\n\n\n redis\n \n\n29篇\n\n\n\n\n\n\n 项目经验总结\n \n\n\n\n\n\n\n\n kafka\n \n\n15篇\n\n\n\n\n\n\n mysql\n \n\n11篇\n\n\n\n\n\n\n java基础\n \n\n10篇\n\n\n\n\n\n\n JVM\n \n\n3篇\n\n\n\n\n\n\n 系统架构\n \n\n1篇\n\n\n\n\n\n\n 算法\n \n\n10篇\n\n\n\n\n\n\n RocketMQ\n \n\n7篇\n\n\n\n\n\n\n 配置中心\n \n\n1篇\n\n\n\n\n\n\n spring\n \n\n1篇\n\n\n\n\n\n\n 可观测性\n \n\n9篇\n\n\n\n\n\n\n 数据库\n \n\n1篇\n\n\n\n\n\n\n JavaScript\n \n\n5篇\n\n\n\n\n\n\n\n\n\n\n\n\n\n目录\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n评论\n\n\n\n\n被折叠的\xa0\xa0条评论\n\t\t 为什么被折叠?\n\n到【灌水乐园】发言\n\n\n\n查看更多评论\n\n\n\n\n\n\n 添加红包\n \n\n\n\n祝福语\n\n\n\n\n请填写红包祝福语或标题\n\n\n红包数量\n\n\n个\n\n红包个数最小为10个\n\n\n红包总金额\n\n\n元\n\n红包金额最低5元\n\n\n余额支付\n\n 当前余额3.43元\n 前往充值 >\n\n\n\n\n 需支付:10.00元\n \n取消\n确定\n\n\n\n\n\n\n\n下一步\n\n\n\n知道了\n\n\n\n\n\n\n\n\n\n\n成就一亿技术人!\n\n\n\n\n\n\n 领取后你会自动成为博主和红包主的粉丝\n 规则\n\n\n\n\n\n\n\n\n\n\nhope_wisdom 发出的红包\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n实付元\n使用余额支付\n\n\n\n\n点击重新获取\n\n\n扫码支付\n\n\n\n\n\n\n\n\n\n\n\n钱包余额\n0\n\n\n\n\n抵扣说明:\n 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。\n\n\n\n\n余额充值\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')], 'output_text': 'Python数据容器主要包括列表、元组、字符串、集合和字典五大类型,以下是对每种类型的简要总结:\n\n1. 列表(List)\n - 可以容纳多个元素,元素类型不限。\n - 支持下标索引,有序存储。\n - 允许重复元素。\n - 是可变的数据容器,可以修改(增加、删除、更新元素)。\n\n2. 元组(Tuple)\n - 不可变的数据容器,一旦定义完成,不可修改。\n - 支持下标索引,有序存储。\n - 允许重复元素。\n - 常用于存储不应改变的数据。\n\n3. 字符串(Str)\n - 专门用于存储字符串。\n - 支持下标索引,有序存储。\n - 不可修改。\n - 常用于文本处理。\n\n4. 集合(Set)\n - 不支持重复元素,自带去重功能。\n - 无序存储,不支持下标索引。\n - 可修改(增加、删除元素)。\n - 常用于数据去重和集合运算。\n\n5. 字典(Dict)\n - 存储键值对。\n - 通过键来检索值,键不可重复。\n - 无序存储,不支持下标索引。\n - 可修改(增加、删除、更新键值对)。\n - 常用于存储具有映射关系的数据。\n\n各种数据容器在Python中的应用非常广泛,根据不同的场景选择合适的数据容器可以提高代码的效率和可读性。'}
Python数据容器主要包括列表、元组、字符串、集合和字典五大类型,以下是对每种类型的简要总结:
1. 列表(List)
- 可以容纳多个元素,元素类型不限。
- 支持下标索引,有序存储。
- 允许重复元素。
- 是可变的数据容器,可以修改(增加、删除、更新元素)。
2. 元组(Tuple)
- 不可变的数据容器,一旦定义完成,不可修改。
- 支持下标索引,有序存储。
- 允许重复元素。
- 常用于存储不应改变的数据。
3. 字符串(Str)
- 专门用于存储字符串。
- 支持下标索引,有序存储。
- 不可修改。
- 常用于文本处理。
4. 集合(Set)
- 不支持重复元素,自带去重功能。
- 无序存储,不支持下标索引。
- 可修改(增加、删除元素)。
- 常用于数据去重和集合运算。
5. 字典(Dict)
- 存储键值对。
- 通过键来检索值,键不可重复。
- 无序存储,不支持下标索引。
- 可修改(增加、删除、更新键值对)。
- 常用于存储具有映射关系的数据。
各种数据容器在Python中的应用非常广泛,根据不同的场景选择合适的数据容器可以提高代码的效率和可读性。
进程已结束,退出代码为 0
MapReduce案例
Map:讲一个大的文档进行切分为n个小的文档,并对这个n个文档进行总结,得到n个总结,这个过程叫做Map
conbine:将n个汇总结果分成m组(m<=n)提交给大模型,这个过程叫conbine(也叫第一次Reduce)
Reduce:将m组结果汇总等到最总的结果,这个过程叫做Reduce
通过提示词生成摘要
结果:
Refine案例
import os
from langchain.chains.summarize import load_summarize_chain
from langchain_community.chat_models import ChatZhipuAI
from langchain_community.document_loaders import WebBaseLoader
from langchain_text_splitters import CharacterTextSplitter
# 设置 USER_AGENT 环境变量
os.environ[
'USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f1975487b9a540bb2f8540732.L45evmXhLNRdKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI(temperature=0)
# 加载我们的文档。我们将使用 WebBaseLoader 来加载博客文章:
loader = WebBaseLoader('https://blog.csdn.net/SO_zxn/article/details/145756382')
# 得到整篇文章
docs = loader.load()
# 第一步: 切割阶段
# 每一个小docs为100个token
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(chunk_size=1000, chunk_overlap=0)
split_docs = text_splitter.split_documents(docs)
# 指定chain_type为: refine
chain = load_summarize_chain(llm, chain_type='refine')
result = chain.invoke({"input_documents": split_docs})
print(result['output_text'])
结果: