Python 常用数据容器(学习笔记)

文章目录

  • 前言
  • 1、什么是数据容器?
  • 2、列表 (list)
    • 2.1 列表的定义和使用
    • 2.2 列表元素的访问
    • 2.3 列表的常用操作方法
    • 2.4 列表的循环遍历
  • 3、元组 (tuple)
    • 3.1 元组的定义和使用
    • 3.2 元组的访问
    • 3.3 元组的常用操作方法
    • 3.4元组的循环遍历
  • 4、字符串 (str)
    • 4.1 字符串的定义与使用
    • 4.2 字符串的访问
    • 4.3 字符串的常用操作方法
    • 4.4 字符串的循环遍历
  • 5、集合 (set)
    • 5.1集合的定义与使用
    • 5.2 集合的常用操作方法
    • 5.3 集合的循环遍历
  • 6、字典 (dict)
    • 6.1 字典的定义与使用
    • 6.2 字典的访问
    • 6.3 字典的常用操作方法
    • 6.4 字典的循环遍历
  • 总结


前言

python中的数据容器详细介绍。

1、什么是数据容器?

在Python中,数据容器(Data Containers)是用来存储和组织数据的结构。这些容器可以是简单的,如列表(list)和元组(tuple),也可以是复杂的,如字典(dict)、集合(set)以及更多高级的数据结构(如队列、栈等)。以下是一些主要的Python数据容器及其简要说明:

2、列表 (list)

2.1 列表的定义和使用

基本语法:

# 定义
列表名称 = [元素1,元素2,元素3,.....]# 定义空列表
列表名称 = []
列表名称 = list()示例如下:# 定义一个包含整数的列表
numbers = [1, 2, 3, 4, 5]# 定义一个包含不同类型元素的列表
mixed_list = [1, 'a', 3.14, True, [1, 2, 3]]

列表的每一个数据,叫做元素,元素之间用逗号隔开

2.2 列表元素的访问

你可以通过索引(index)来访问列表中的元素。索引从0开始,因此第一个元素的索引是0,第二个元素的索引是

# 访问第一个元素
first_element = numbers[0]  # 结果是 1# 访问最后一个元素(注意:这种方式在不知道列表长度时可能引发错误)
last_element = numbers[-1]  # 结果是 5

2.3 列表的常用操作方法

  • append:在列表末尾添加元素
  • insert: 在指定位置插入元素
  • remove: 删除列表中的第一个出现的指定元素
  • pop: 删除并返回指定索引的元素
  • clear:清空列表
  • count:统计元素在列表中的数量
  • len: 统计列表有多少个元素
# 创建一个包含数字的列表
numbers = [1, 2, 3, 4, 5]# 创建一个包含字符串的列表
fruits = ["apple", "banana", "cherry"]# 在列表末尾添加元素
numbers.append(6)  # 现在 numbers 是 [1, 2, 3, 4, 5, 6]# 在指定位置插入元素
fruits.insert(1, "blueberry")  # 现在 fruits 是 ["apple", "blueberry", "banana", "cherry"]# 删除列表中的第一个出现的指定元素
fruits.remove("banana")  # 现在 fruits 是 ["apple", "blueberry", "cherry"]# 删除并返回指定索引的元素
removed_item = numbers.pop(1)  # 输出: 20,现在 numbers 是 [1, 3, 4, 5]# 清空列表
numbers.clear()  # 输出空列表 []# 统计目标元素的个数
my_list = [1,1,1,1,2,3,4]
numbers.count(1)  # 输出41出现了4次# 统计总的元素个数
nummbers.len()   # 输出5

2.4 列表的循环遍历

使用for循环遍历列表

# 定义一个列表
fruits = ["apple", "banana", "cherry", "date"]# 使用for循环遍历列表
for fruit in fruits:print(fruit)

使用while循环遍历列表

# 定义一个列表
fruits = ["apple", "banana", "cherry", "date"]# 初始化索引变量
index = 0# 使用while循环遍历列表
while index < len(fruits):print(fruits[index])index += 1

3、元组 (tuple)

元组同列表一样,都是可以封装多个,不同类型的数据在里面,最大的区别就是,元组一旦定义完成,就不可以修改,所以当我们需要在程序内封装数据,又不希望数据不被修改。那么元组就非常适合。

3.1 元组的定义和使用

# 定义一个包含多个元素的元组
my_tuple = (1, 2, 3, "apple", "banana")# 定义一个只有一个元素的元组(注意逗号)
single_element_tuple = (5,)# 定义一个空元组
empty_tuple = ()
or
empty_tuple = tuple()

3.2 元组的访问

# 访问第一个元素
first_element = my_tuple[0]  # 输出: 1# 访问最后一个元素(使用负索引)
last_element = my_tuple[-1]  # 输出: "banana"

3.3 元组的常用操作方法

元组支持一些方法,如count()(计算某个元素出现的次数)和index()(查找某个元素第一次出现的索引)。

my_tuple = (1, 2, 3, 2, 1)
print(my_tuple.count(2))  # 输出: 2
print(my_tuple.index(1))  # 输出: 0(查找第一个出现的1的索引)
print(my_tuple.len()) # 元素5

3.4元组的循环遍历

for 循环

# 使用for循环遍历元组
# 定义一个元组
my_tuple = (1, 2, 3, "apple", "banana")for item in my_tuple:print(item)

while循环

# 使用为while循环遍历元组
index = 0
while index < len(my_tuple)print(my_tuple[index])index+=1

4、字符串 (str)

严格来说,字符串也是一种数据容器,用于存储字符序列。支持索引、切片和多种字符串操作方法。

4.1 字符串的定义与使用

my_str = "hellow world"
value = my_str[2]0开始数
value1 = my_str[-12] 倒数从-1开始
print(value1) # 输出 h
print(value) # 输出 l

4.2 字符串的访问

基本上与上面一样,都是通过下标索来访问

my_str = "hellow world"
value = my_str[2]0开始数
value1 = my_str[-12] 倒数从-1开始
print(value1) # 输出 h
print(value) # 输出 l

4.3 字符串的常用操作方法

my_str = "hellow world"
# 获取下标操作
print(my_str.index(w))  # 输出5 下标为5# 替换操作
print(my_str.replace('h','baba')) # 输出 babaellow world# split方法
print(my_str.split(' '))  # 输出 ['hellow', 'world']方法:strip 去除前后指定字符串
# strip
my_str = "12hellow world12"
print(my_str.strip('12'))  # 输出 hellow worldmy_str = "12hellow world12"# count 方法统计字符串个数
print(my_str.count('l'))# len方法 统计字符串长度
print(len(my_str))

4.4 字符串的循环遍历

while 循环

index = 0
while index < len(my_str):print(my_str[index])index += 1

for循环

my_Str = "hellow world"
for item in my_str:print(item)

5、集合 (set)

在Python中,集合(Set)是一种重要的数据结构,它用于存储一组独特的、无序的元素,并且集合中的元素不允许重复。以下是关于集合的定义与使用的详细介绍:

5.1集合的定义与使用

# 定义集合
my_set = {1,1,1,1,2,2,3,3,4,4,5,5,6,6}
# 定义空集合
my_set_empyt = set()
print(my_set) # 输出 {1, 2, 3, 4, 5, 6}
print(my_set_empyt)  # 输出set()

5.2 集合的常用操作方法

# 添加
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出: {1, 2, 3, 4}# 更新
my_set = {1, 2, 3}
my_set.update([4, 5, 6])
print(my_set)  # 输出: {1, 2, 3, 4, 5, 6}# 删除
my_set = {1, 2, 3, 4, 5}
my_set.remove(3)
print(my_set)  # 输出: {1, 2, 4, 5}# 清除
my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set)  # 输出: set()# 并集运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1.union(set2)  # 使用union()方法# 交集运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = set1.intersection(set2)# 差集运算
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5}
set3 = set1.difference(set2)

5.3 集合的循环遍历

for循环

my_set = {10, 20, 30, 40, 50}# 使用for循环遍历集合
for element in my_set:print(element)

6、字典 (dict)

字典(Dictionary)是Python中一种非常重要的数据结构,它用于存储键值对(key-value pairs)数据。以下是字典的定义与使用的详细介绍:

6.1 字典的定义与使用

# 定义字典
my_dict = {"name": "Alice", "age": 25, "city": "New York"}# 定义空字典
my_dict = {}
my_dict = dict()

6.2 字典的访问

my_dict = {"name": "Alice", "age": 25, "city": "New York"}# 直接访问
print(my_dict["name"])  # 输出:Alice# 使用get()方法访问
print(my_dict.get("age"))  # 输出:25
print(my_dict.get("country", "China"))  # 键不存在,返回默认值China

6.3 字典的常用操作方法

# 添加新元素
my_dict["email"] = "alice@example.com"# 修改已有元素的值
my_dict["age"] = 26# 使用pop()方法删除元素
print(my_dict.pop("city"))  # 输出:New York# 使用popitem()方法删除最后一个元素(Python 3.7+print(my_dict.popitem())  # 输出类似:('email', 'alice@example.com'),具体取决于字典内容# 清空字典
my_dict.clear()# 注意:直接使用del语句也可以删除字典中的元素。
del my_dict["age"]  # 删除键为"age"的元素# 获取全部的key
print(f"字典中获取全部的keys是" {keys})

6.4 字典的循环遍历

# 方法一
for key in my_dict.keys():print(key)# 方法二
for key in my_dict:print(key)

总结

这些数据容器各有优缺点,选择哪种容器取决于具体的应用场景和需求。Python提供了丰富的内置数据结构和模块,使得数据管理和操作变得简单而高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【汽车租聘管理与推荐】Python+Django网页界面+推荐算法+管理系统网站

一、介绍 汽车租聘管理与推荐系统。本系统使用Python作为主要编程语言&#xff0c;前端采用HTML、CSS、BootStrap等技术搭建前端界面&#xff0c;后端采用Django框架处理用户的请求。创新点&#xff1a;使用协同过滤推荐算法实现对当前用户个性化推荐。 其主要功能如下&#…

快速入门CSS

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗 如有错误&#xff0c;欢迎指出~ 目录 CSS css的三种引入方式 css书写规范 选择器分类 标签选择器 class选择器 id选择器 复合选择器 通配符选择器 color颜色设置 border边框设置 width/heigth 内/外边距 C…

uniapp实现H5和微信小程序获取当前位置(腾讯地图)

之前的一个老项目&#xff0c;使用 uniapp 的 uni.getLocation 发现H5端定位不准确&#xff0c;比如余杭区会定位到临平区&#xff0c;根据官方文档初步判断是项目的uniapp的版本太低。 我选择的方式不是区更新uniapp的版本&#xff0c;是直接使用高德地图的api获取定位。 1.首…

探索Python网络请求新纪元:httpx库的崛起

文章目录 **探索Python网络请求新纪元&#xff1a;httpx库的崛起**第一部分&#xff1a;背景介绍第二部分&#xff1a;httpx库是什么&#xff1f;第三部分&#xff1a;如何安装httpx库&#xff1f;第四部分&#xff1a;简单的库函数使用方法1. 发送GET请求2. 发送POST请求3. 超…

产品的四个生命周期,产品经理需深刻理解

在产品管理的世界里&#xff0c;产品就像有生命的个体&#xff0c;经历着从诞生到消亡的过程。作为产品经理&#xff0c;深刻理解产品的四个生命周期 —— 引入期、成长期、成熟期和衰退期&#xff0c;是打造成功产品的关键。 引入期&#xff1a;破局的起点 对于 B 端产品而言&…

TensorFlow|咖啡豆识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 &#x1f37a; 要求&#xff1a; 自己搭建VGG-16网络框架调用官方的VGG-16网络框架 &#x1f37b; 拔高&#xff08;可选&#xff09;&#xff1a; 验证集准…

《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析

导读&#xff1a;SQL 诞生于 20 世纪 70 年代&#xff0c;至今已有半个世纪。SQL 语言具有语法简单&#xff0c;低学习门槛等特点&#xff0c;诞生之后迅速普及与流行开来。由于 SQL 具有易学易用的特点&#xff0c;使得开发人员容易掌握&#xff0c;企业若能在其计算机软件中支…

VMware虚拟机可以被外部机器访问吗?

如何设置让同局域网内其他机器访问本地虚拟机服务&#xff08;这里以访问我本地虚拟机ELasticSearch服务为例&#xff09; 选中虚拟机 - 虚拟机 - 设置 虚拟机网络设置&#xff1a; 选中网络适配器&#xff0c;修改网络模式为NAT模式 编辑 - 虚拟机网络编辑器 更改设置 …

【论文复现】自动化细胞核分割与特征分析

本文所涉及所有资源均在这里可获取。 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 论文复现 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f496; 自动化细胞核分割与特征分析 引言效果展示HoverNet概述HoverNet原理分析整…

【NOIP普及组】质因数分解

【NOIP普及组】质因数分解 C语言代码C代码Java代码Python代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 已知正整数 n 是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 输入 输入只有一行&#xff0c;包含一个正整数…

2024软件测试面试热点问题

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 大厂面试热点问题 1、测试人员需要何时参加需求分析&#xff1f; 如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工…

qt QTextStream详解

1、概述 QTextStream类是Qt框架中用于处理文本输入输出的类。它提供了一种方便的方式&#xff0c;可以从各种QIODevice&#xff08;如QFile、QBuffer、QTcpSocket等&#xff09;中读取文本数据&#xff0c;或者将文本数据写入这些设备中。QTextStream能够自动处理字符编码的转…

Webpack性能优化指南:从构建到部署的全方位策略

文章目录 1、webpack的优化-OneOf2、webpack的优化-Include/Exclude3、webpack优化-SourceMap4、webpack的优化-Babel缓存5、wenbpack的优化-resolve配置6、构建结果分析 webpack优化在现代前端开发中&#xff0c;Webpack已成为模块打包器的事实标准&#xff0c;它通过将项目中…

[ DOS 命令基础 4 ] DOS 命令命令详解-端口进程相关命令

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

飞书API-获取tenant_access_token

1.在飞书工作台创建应用&#xff0c;跳到开发者后台&#xff0c;选创建企业自建应用 2.设置并发布应用 必须要发布应用才可以开始使用了&#xff01;&#xff01;&#xff01; 3.调用获取token的API 参考链接&#xff1a; 开发文档 - 飞书开放平台https://open.feishu.cn/do…

linux 安装anaconda3

1.下载 使用repo镜像网址下载对应安装包 右击获取下载地址&#xff0c;使用终端下载 wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh2.安装 使用以下命令可直接指定位置 bash Anaconda3-2024.02-1-Linux-x86_64.sh -b -p /home/anaconda3也…

LabVIEW编程过程中为什么会出现bug?

在LabVIEW编程过程中&#xff0c;Bug的产生往往源自多方面原因。以下从具体的案例角度分析一些常见的Bug成因和调试方法&#xff0c;以便更好地理解和预防这些问题。 ​ 1. 数据流错误 案例&#xff1a;在一个LabVIEW程序中&#xff0c;多个计算节点依赖相同的输入数据&#…

【自用】fastapi 学习记录 --请求和参数部分

fastai个人学习笔记 一、模块化结构框架 设置了默认请求头shop之后就无需再app0x里接口函数前全部写上/shop/xxx&#xff0c;或者/user/xxx&#xff0c;他会同意添加~如果都写了就会出现以下的情况&#xff08;重复shop&#xff09;&#xff1a; 二、请求与响应 关于参数&a…

若依入门案例

若依&#xff08;RuoYi&#xff09;框架是一个基于Java的开源企业级快速开发框架&#xff0c;主要用于构建信息管理系统。它结合了多种前端和后端技术&#xff0c;提供了高效的开发工具&#xff0c;并具备以下主要功能&#xff1a; 一、后端功能 技术选型&#xff1a;若依后端…

【Web前端】OOP编程范式

面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称 OOP&#xff09;是一种程序设计思想&#xff0c;它通过将程序视为一组相互作用的对象来设计程序。OOP 提出了一些重要的基本概念&#xff0c;包括类与实例、继承和封装。面向对象编程将系统视为由多个对象…