Python-数据容器

定义

        Python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

        数据容器根据特点的不同,如:
        (1)是否支持重复元素
        (2)是否可以修改
        (3)是否有序,等
        分为5类,分别是:
        列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

列表

基本语法:

#字面量 [元素1,元素2,元素3,元素4,...] #定义变量 变量名称=[元素1,元素2,元素3,元素4,...] #定义空列表 变量名称=[] 变量名称 = list()

列表内的每一个数据,称之为元素,以[]作为标识,列表内每一个元素之间用,逗号隔开。

列表索引

        列表的每一个元素都有编号称之为下标索引
        (1)从前向后的方向,编号从0开始递增
        (2)从后向前的方向,编号从-1开始递减

列表的方法

编号使用方式作用
1列表append(元素)向列表中追加一个元素
2列表.extend(容器)将数据容器的内容依次取出,追加到列表尾部
3列表.insert(下标,元素)在指定下标处,插入指定的元素
4del列表[下标]删除列表指定下标元素
5列表.pop(下标)删除列表指定下标元素
6列表.remove(元素)从前向后,删除此元素第一个匹配项
7列表.clear()清空列表
8列表.count(元素)统计此元素在列表中出现的次数
9列表.index(元素)查找指定元素在列表的下标,找不到报错ValueError
10len(列表)统计容器内有多少元素

列表的特点

列表有如下特点:
(1)可以容纳多个元素(上限为2**63-1、9223372036854775807个)
(2)可以容纳不同类型的元素(混装)
(3)数据是有序存储的(有下标序号)
(4)允许重复数据存在
(5)可以修改(增加或删除元素等)

元组

        元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。

#定义元组字面量 (元素, 元素, ......, 元素) #定义元组变量 变量名称=(元素, 元素, ......, 元素). #定义空元组 变量名称=() 变量名称=tuple()

元组的相关操作

编号方法作用
1index()查找某个数据,如果数据存在返回对应的下标,否则报错
2count()统计某个数据在当前元组出现的次数
3len(元组)统计元组内的元素个数

字符串容器

        字符串同样也是数据容器的一员,字符串是字符的容器,一个字符串可以存放任意数量的字符。如,字符串:"Hello World”。

        和其它容器如:列表、元组一样,字符串也可以通过下标进行访问
        从前向后,下标从0开始
        从后向前,下标从-1开始

字符串的替换

        语法:字符串.replace(字符串1,字符串2)

        功能:将字符串内的全部:字符串1,替换为学符串2

        注意:不是修改字符串本身,而是得到了一个新字符串哦

字符串的分割

        语法:字符串.split(分隔符字符串)

        功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中

        注意:字符串本身不变,而是得到了一个列表对象

字符串常用操作汇总

编号操作说明
1字符串[下标]根据下标索引取出特定位置字符
2字符串.index(字符串)查找给定字符的第一个匹配项的下标:
3字符串.replace(字符串1,字符串2)将字符串内的全部字符串1,替换为字符串2不会修改原字符串,而是得到一个新的字符串
4字符串.split(字符串)按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表
5

字符串.strip()

字符串.strip(字符串)

移除首尾的空格和换行符或指定字符串
6字符串.count(字符串)统计字符串内某字符串的出现次数:
7len(字符串)统计字符串的字符个数

        作为数据容器,字符串有如下特点:
        (1)只可以存储字符串
        (2)长度任意 (取决于内存大小)
        (3)支持下标索引
        (4)允许重复字符串存在
        (5)不可以修改(增加或删除元素等)
        (6)支持for循环

序列

        序列是指:内容连续、有序,可使用下标索引的一类数据容器列表、元组、字符串,均可以可以视为序列。
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
        (1)起始下标表示从何处开始,可以留空,留空视作从头开始
        (2)结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
        (3)步长表示,依次取元素的间隔
                ①步长1表示,一个个取元素
                ②步长2表示,每次跳过1个元素取
                ③步长N表示,每次跳过N-1个元素取
                ④步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)

        注意,此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、享符串)

集合

基本语法:

#定义集合字面量 {元素, 元素, ......, 元素} #定义集合变量 变量名称={元素, 元素, ......, 元素} #定义空集合 变量名称=set()

        首先,因为集合是无序的,所以集合不支持:下标索引访问,但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。

集合常用功能总结

编号操作说明
1集合.add(元素)集合内添加一个元素
2集合.remove(元素)移除集合内指定的元素
3集合.pop()从集合中随机取出一个元素
4集合.clear()将集合清空
5集合1.difference(集合2)得到一个新集合,内含2个集合的差集原有的2个集合内容不变
6集合1.difference_update(集合2)在集合1中,删除集合2中存在的元素集合1被修改,集合2不变
7集合1.union(集合2)得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变
8len(集合)得到一个整数,记录了集合的元素数

集合有如下特点:

       (1) 可以容纳多个数据
       (2)可以容纳不同类型的数据(混装)
       (3)数据是无序存储的(不支持下标索引)
       (4)不允许重复数据存在
       (5)可以修改(增加或删除元素等)
       (6)支持for循环

字典

        字典的定义,同样使用0不过存储的元素是一个个的:键值对,如下语法:

#定义字典字面量 {key: valuem key: value,...... key: value} #定义字典变量 my_dict = {key: value, key: value,......, key: value} #定义空字典 my_dict = {} my_dict = dict()

字典的注意事项

        (1)键值对的Key和Value可以是任意类型(Key不可为字典)
        (2)字典内Key不允许重复,重复添加等同于覆盖原有数据
        (3)字典不可用下标索引,而是通过Key检索Value

字典的常用操作总结

编号操作说明
1字典[Key]获取指定Key对应的Value值
2字典[Key]= Value添加或更新键值对
3字典.pop(Key)取出Key对应的Value并在字典内删除此Key的键值对
4字典.clear()清空字典
5字典.keys()获取字典的全部Key,可用于for循环遍历字典
6len(字典)计算字典内的元素数量

字典的特点

        (1)可以容纳多个数据
        (2)可以容纳不同类型的数据
        (3)每一份数据是KeyValue键值对
        (4)可以通过Key获取到Value,Key不可重复(重复会覆盖)
        (5)不支持下标索引
        (6)可以修改(增加或删除更新元素等)
        (7)支持for循环,不支持while循环

数据容器分类

数据容器可以从以下视角进行简单的分类:
        (1)是否支持下标索引

               ①支持:列表、元组、字符串-序列类型

               ②不支持:集合、字典-非序列类型
      (2)是否支持重复元素:

               ①支持:列表、元组、字符串-序列类型

               ②不支持:集合、字典-非序列类型

        (3)是否可以修改

               ①支持:列表、集合、字典

               ②不支持:元组、字符串

数据容器特点对比

Read more

终极语音转文字与说话人分离完整指南:Whisper Diarization快速入门

终极语音转文字与说话人分离完整指南:Whisper Diarization快速入门 【免费下载链接】whisper-diarizationAutomatic Speech Recognition with Speaker Diarization based on OpenAI Whisper 项目地址: https://gitcode.com/GitHub_Trending/wh/whisper-diarization 在当今数字化办公环境中,语音转文字与说话人分离技术正成为提升工作效率的关键工具。Whisper Diarization作为基于OpenAI Whisper的开源项目,完美解决了多说话人场景下的语音识别难题,让您能够快速获得带说话人标签的完整转录文本。 🎯 项目核心价值:为什么选择Whisper Diarization 传统语音识别工具在处理多人对话时往往无法区分不同说话者,导致转录结果难以阅读和分析。Whisper Diarization通过整合顶尖的语音处理技术,提供了以下独特价值: * 智能说话人识别:自动区分音频中的不同说话者 * 精准时间戳对齐

By Ne0inhk
技术速递|GitHub Copilot SDK 与云原生的完美融合

技术速递|GitHub Copilot SDK 与云原生的完美融合

作者:卢建晖 - 微软高级云技术布道师 排版:Alan Wang 引言 在当今快速演进的 AI 技术格局中,我们已经见证了从简单聊天机器人到复杂智能体系统的转变。作为一名开发者和技术布道者,我观察到一个正在形成的趋势——重点不在于让 AI 无所不能,而在于让每一个 AI Agent 在特定领域做到极致、做到专业。 今天,我想分享一套令人兴奋的技术组合:GitHub Copilot SDK(将生产级智能体引擎嵌入任意应用的开发工具包) + Agent-to-Agent(A2A)Protocol(实现智能体标准化协作的通信规范) + 云原生部署(支撑生产系统的基础设施)。这三者结合在一起,使我们能够构建真正具备协作能力的多智能体系统。 从 AI 助手到智能体引擎:重新定义能力边界 传统的 AI 助手往往追求“全能”——试图回答你抛给它的任何问题。但在真实的生产环境中,这种方式会遇到严重挑战: * 质量不一致:一个模型同时写代码、做数据分析、

By Ne0inhk
【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?

【源力觉醒 创作者计划】开源、易用、强中文:文心一言4.5或是 普通人/非AI程序员 的第一款中文AI?

前言 * 你有没有发现,AI 正在悄悄渗透进我们的生活:写文案、画插图、做PPT、答作业,它几乎无所不能😍 !但很多人可能会问: AI,我能用吗?用得起吗?适合我吗?特别是中文用户,面对清一色英文界面、动辄上百元的 API 费用、还要“翻墙”的闭源大模型,常常望而却步😩。 * 好消息来了,文心一言4.5 正式开源,带着「能跑、好用、懂中文」的标签亮相😎。这不仅是一款中文大模型,更像是为中文用户量身定做的一把 AI 钥匙,让你在本地就能打开 AI 世界的大门!在这个“不会用 AI 就像不会用手机”的时代,早点上手,早点受益。 * 一起来轻松玩转文心大模型吧👉一文心大模型免费下载地址: https://ai.

By Ne0inhk

【GitHub项目推荐--TypeTale(字字动画):免费AIGC视频创作工具】非开源

简介 TypeTale (字字动画)是一款专为内容创作者打造的完全免费的AIGC创作软件,主要用于小说推文、AI短剧、AI电影制作。它集成了多种AI能力,提供从文案处理到视频生成的全链路创作支持,承诺现有功能与基础功能永久免费。 🔗 GitHub地址 : https://github.com/TypeTale/TypeTale 🎬 核心价值 : AIGC视频生成 · 小说推文 · AI短剧 · 完全免费 · 中文优化 项目背景 : * 内容创作 :短视频内容创作需求增长 * AIGC技术 :AI生成内容技术成熟 * 成本控制 :降低视频制作成本需求 * 中文优化 :中文内容创作工具需求 * 开源生态 :开源创作工具生态 项目特色 : * 🆓 完全免费 :永久免费使用 * 🇨🇳 中文优化 :专为中文优化 * 🤖 AI集成 :多AI能力集成 * 🎬 视频生成 :全链路视频生成 * 🔧 易用性 :简单易用界面 技术亮点 : * 多模型支持 :支持多种AI模型 * ComfyUI集成 :深度ComfyUI集成 * 工作流系统

By Ne0inhk