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;企业若能在其计算机软件中支…

需求分析管理

软件需求工程是包括创建和维护软件需求文档所必须得一切活动的过程&#xff0c;可以分为需求开发和需求管理两大工作。 需求开发过程&#xff08;四阶段&#xff09; 需求的分析(或者需求开发)过程包括&#xff0c;收集与获取需求&#xff0c;进行需求分析&#xff0c;定义需…

机器学习与深度学习-1-线性回归从零开始实现

机器学习与深度学习-1-线性回归从零开始实现 1 前言 ​ 内容来源于沐神的《动手学习深度学习》课程&#xff0c;本篇博客对线性回归从零开始实现&#xff08;即不调用封装好的库&#xff0c;如SGD优化器、MSE损失函数等&#xff09;进行重述&#xff0c;并且修改了沐神的课堂…

在 Sanic 中配置 Worker 并发数量的最佳实践

在 Sanic 中&#xff0c;您可以通过配置 worker 的数量来控制并发处理请求的能力。Sanic 是一个异步的 Python Web 框架&#xff0c;允许您创建高性能的 HTTP 服务器。您可以通过以下几个步骤来设置和管理一个 worker 的并发数量。 1. Worker 数量 在 Sanic 中&#xff0c;您…

点云从入门到精通技术详解100篇-基于结构光测量的三维人脸重建及识别(中)

目录 2.1.2 投影光栅几何标定模型建立 2.1.2.1 线性相位——高度模型 2.1.2.2 非线性相位——高度模型 2.1.2.3 三角立体模型 2.1.3 系统参数标定 2.1.3.1 摄像机模型 2.1.3.2 系统参数标定 2.2 基于结构光的三维人脸重建技术 2.2.1 人脸条纹图技术分析 2…

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能够自动处理字符编码的转…

【LeetCode】【算法】287. 寻找重复数

LeetCode 287. 寻找重复数 题目描述 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。 你设计的解…

React05 样式控制 classnames工具优化类名控制

样式控制 & classnames工具优化类名控制 样式控制1. 行内样式控制2. 外部样式控制 classnames工具优化类名控制 样式控制 1. 行内样式控制 //定义样式 const style {color: red,fontSize: 30px }function App() {return (<div className"App">{/* 行内样…

题解:P11248 [GESP202409 七级] 矩阵移动

题目传送门 题目大意 给出一个 n n n 行 m m m 列的只包含 0、1、? 的矩阵&#xff0c;你可以选择至多 x x x 个 ? 改成 1。 设得分为经过的 1 的数量&#xff0c;求从矩阵的 ( 1 , 1 ) (1,1) (1,1) 开始&#xff0c;每次只能向右或向下移动&#xff0c;走到 ( n , m…

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

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