Python基础(十六、数据容器汇总)

2024-01-04

一、数据容器汇总

列表 元组 字符串 集合 字典
元素数量 多个 多个 多个 多个 多个
元素类型 任意 任意 字符 任意 键值对,键:除字典外任意类型,值:类型任意
下标索引
重复元素 支持 支持 支持 不支持 key不可重复
可修改性 支持 不支持 不支持 支持 支持
数据有序
使用场景 可修改、可重复的一批数据记录 不可修改、可重复的一批数据记录 一串字符的记录 不可重复的数据记录 通过key检索value的数据记录

二、数据容器通用操作

1.遍历

  • 五种数据容器都支持for循环遍历
  • 列表、元组、字符串支持while循环,集合、字典不支持(没有下标索引)

2.通用统计

len(容器)

统计容器的元素个数

my_list = [1,2,3,4]
my_dict = {"a":"b","c":"d"}
my_str = "abc"
print(len(my_list)) # 输出:4
print(len(my_dict)) # 输出:2
print(len(my_str)) # 输出:3

max(容器)

统计容器的最大元素

my_list = [1,2,3,4]
my_dict = {"a":"b","c":"d"}
my_str = "abc"
print(max(my_list)) # 输出:4
print(max(my_dict)) # 输出:c
print(max(my_str)) # 输出:c

min(容器)

统计容器的最小元素

my_list = [1,2,3,4]
my_dict = {"a":"b","c":"d"}
my_str = "abc"
print(min(my_list)) # 输出:1
print(min(my_dict)) # 输出:a
print(min(my_str)) # 输出:a

3.类型转换

  • list(容器) 将指定容器转换为列表
  • str(容器) 将指定容器转换为字符串
  • tuple(容器) 将指定容器转换为元素
  • set(容器) 将指定容器转换为集合

4.通用排序

sorted(容器,reverse=True)

  • reverse=True是降序
  • reverse=false是升序
  • 不写reverse,默认false,升序
  • 排序后结果是列表
my_list = [9,2,7,4]
my_dict = {"s":"b","c":"d"}
my_str = "ax3gbsc"
print(sorted(my_list)) # 输出 [2, 4, 7, 9]
print(sorted(my_dict)) # 输出 ['c', 's']
print(sorted(my_str)) # 输出 ['3', 'a', 'b', 'c', 'g', 's', 'x']

print(sorted(my_list, reverse=True)) # 输出 [9, 7, 4, 2]
print(sorted(my_dict, reverse=True)) # 输出 ['s', 'c']
print(sorted(my_str, reverse=True)) # 输出 ['x', 's', 'g', 'c', 'b', 'a', '3']

三、练习题目

1.定义一个列表fruits,其中包含apple、orange和banana三个元素。实现向列表中增加pear元素和在grape元素前插入kiwi元素。删除列表中的orange元素和第一个元素。将第二个元素修改为pineapple,最后遍历输出列表中的所有元素。

'''
1.定义一个列表fruits,其中包含apple、orange和banana三个元素。
实现向列表中增加pear元素和在grape元素前插入kiwi元素。
删除列表中的orange元素和第一个元素。
将第二个元素修改为pineapple,
最后遍历输出列表中的所有元素。
'''
fruits = ["apple","orange","banana"]
fruits.append("pear")
print(fruits) # 输出 ['apple', 'orange', 'banana', 'pear']
fruits.append("grape")
print(fruits) # 输出 ['apple', 'orange', 'banana', 'pear', 'grape']
fruits.insert(fruits.index("grape"),"kiwi")
print(fruits) # 输出 ['apple', 'orange', 'banana', 'pear', 'kiwi', 'grape']
fruits.remove("orange")
print(fruits) # 输出 ['apple', 'banana', 'pear', 'kiwi', 'grape']
fruits[2]="pineapple"
print(fruits) # 输出 ['apple', 'banana', 'pineapple', 'kiwi', 'grape']
for fru in fruits:
    print(fru)

2.定义一个字典student,包含name、age和gender三个键,对应的值分别为Tom、18和male。将score键添加到字典中,对应的值为[80, 90, 85]。删除age键值对,将name键对应的值修改为Alice。使用get方法查找gender和grade对应的值,并输出结果。最后遍历输出字典中的所有键值对。

'''
2.定义一个字典student,包含name、age和gender三个键,对应的值分别为Tom、18和male。
将score键添加到字典中,对应的值为[80, 90, 85]。
删除age键值对,
将name键对应的值修改为Alice。
使用get方法查找gender和grade对应的值,并输出结果。
最后遍历输出字典中的所有键值对。
'''
student = {
    "name": "Tom",
    "age": 18,
    "gender": "male"
}
print(student) # 输出 {'name': 'Tom', 'age': 18, 'gender': 'male'}
student["score"] = [80, 90, 85]
print(student) # 输出 {'name': 'Tom', 'age': 18, 'gender': 'male', 'score': [80, 90, 85]}
student.pop("age")
print(student) # 输出 {'name': 'Tom', 'gender': 'male', 'score': [80, 90, 85]}
student["name"] = "Alice"
print(student) # 输出 {'name': 'Alice', 'gender': 'male', 'score': [80, 90, 85]}
print(student.get("gender")) # 输出 male
print(student.get("grade")) # 输出 None
for stu in student.items():
    print(stu)
    '''
    输出
    ('name', 'Alice')
    ('gender', 'male')
    ('score', [80, 90, 85])
    '''

3.定义一个字符串message,包含Hello, World!这个字符串。求出字符串的长度,并使用切片获取从第7个字符开始到结尾的子串。拼接Hi和Alice两个字符串,生成一个新的字符串sentence。使用find和index方法查找World子串在字符串中的位置,并输出结果。

'''
3.定义一个字符串message,包含Hello, World!这个字符串。
求出字符串的长度,
并使用切片获取从第7个字符开始到结尾的子串。
拼接Hi和Alice两个字符串,生成一个新的字符串sentence。
使用find和index方法查找World子串在字符串中的位置,并输出结果。
'''
message = "Hello, World!"
print(message)# 输出 Hello, World!
print(len(message))# 输出 13
print(message[7:])# 输出 World!
sentence = f"Hi{message}Alice"
print(sentence)# 输出 Hello, World!
sentence = "Hi"+message+"Alice"
print(sentence)# 输出 Hello, World!
print(sentence.find("World"))# 输出 9
print(sentence.index("World"))# 输出 9

4.定义一个列表numbers,包含5、2、8、1和9这5个元素。对列表进行排序,得到一个升序排列的新列表sorted_numbers,并输出结果。

'''
4.定义一个列表numbers,包含5、2、8、1和9这5个元素。
对列表进行排序,得到一个升序排列的新列表sorted_numbers,并输出结果。
'''
numbers = [5,2,8,1,9]
sorted_numbers = sorted(numbers)
print(sorted_numbers)# 输出 [1, 2, 5, 8, 9]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)# 输出 [9, 8, 5, 2, 1]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python基础(十六、数据容器汇总) 的相关文章

  • 中断 Select 以添加另一个要在 Python 中监视的套接字

    我正在 Windows XP 应用程序中使用 TCP 实现点对点 IPC 我正在使用select and socketPython 2 6 6 中的模块 我有三个 TCP 线程 一个读取线程通常会阻塞select 一个通常等待事件的写入线程
  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 在 Sphinx 文档中*仅*显示文档字符串?

    Sphinx有一个功能叫做automethod从方法的文档字符串中提取文档并将其嵌入到文档中 但它不仅嵌入了文档字符串 还嵌入了方法签名 名称 参数 我如何嵌入only文档字符串 不包括方法签名 ref http www sphinx do
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • Scipy Sparse:SciPy/NumPy 更新后出现奇异矩阵警告

    我的问题是由大型电阻器系统的节点分析产生的 我基本上是在设置一个大的稀疏矩阵A 我的解向量b 我正在尝试求解线性方程A x b 为了做到这一点 我正在使用scipy sparse linalg spsolve method 直到最近 一切都
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk

随机推荐

  • Linux习题2

    解析 虚拟内存是计算机系统内存管理的一种技术 它使得应用程序认为它拥有连续可用的内存 使得每个进程看到的内存空间一致 解析 所谓系统调用 就是内核提供的 功能十分强大的一系列的函数 这些系统调用是在内核中实现的 再通过一定的方式把系统调用给
  • 基于WEB的教学辅助系统的设计与实现

    随着计算机和网络技术的飞速发展 人们传统的生活 工作和学习方式正在发生深刻变革 长久以来 各行各业的教学以传统的课堂讲授为主 效果受到诸多限制 因此 随着在线辅助教学及行业信息化的普及 构建信息交互平台的重要性日益凸显 为了提高教育质量 充
  • 可狱可囚的爬虫系列课程 09:通过 API 接口抓取数据

    前面已经讲解过 Requests 结合 BeautifulSoup4 库抓取数据 这种方式在抓取数据时还是比较方便快捷的 但是这并不意味着所有的网站都适合这种方式 并且这也不是抓取数据的最快方式 今天我们来讲一种更快速的获取数据的方式 通过
  • SSM知识点铺垫--Http工作原理?

    HTTP Hypertext Transfer Protocol 是一种用于在网络上传输超文本的协议 它是一个无状态的协议 意味着每次请求之间没有保留状态 HTTP的工作原理涉及客户端和服务器之间的通信 主要包括请求 Request 和响应
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • CRM软件对企业发展起着哪些作用?CRM的功能解析

    虽然不少科技成果昙花一现 但CRM管理系统作为销售和营销领域的核心技术 已经牢牢占据了不可撼动的地位 拥有一个部署得当的CRM系统能为企业带来诸多好处 它可以跟踪和管理销售人员与潜在 现有客户的所有互动和沟通 并帮助他们识别出需要重点培养或
  • 基于SpringBoot的旅游网站281

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的旅游
  • SpringIOC之support模块DefaultMessageSourceResolvable

    博主介绍 全网粉丝5W 全栈开发工程师 从事多年软件开发 在大厂呆过 持有软件中级 六级等证书 可提供微服务项目搭建与毕业项目实战 博主也曾写过优秀论文 查重率极低 在这方面有丰富的经验 博主作品 Java项目案例 主要基于SpringBo
  • SpringBoot多模块(module)项目搭建

    https www cnblogs com zfyang2429 p 10801959 html
  • JDK21新特性探秘

    欢迎关注公众号 通过文章导读关注 11来了 及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景 中间件系列笔记 和 编程高频电子书 文章导读地址 点击查看文
  • 5.1 中央寄存器的原理和组成

    思维导图 中央处理器 CPU 核心原理与组成 引言 中央处理器 CPU 作为计算机的 大脑 在现代计算机硬件中扮演着至关重要的角色 本文旨在深入探讨CPU的基本原理和组成部分 为读者提供一个全面的理解 CPU的基本原理 1 信息处理 CPU
  • <sa8650>sa8650 CDT-之-汽车CDT配置用户指南(上)

    sa8650 sa8650 CDT 之 汽车CDT配置用户指南 上 2 CDT概述 2 1 Platform ID值 2 2 CDT一般结构 2 3 CDT头 2 4 块元数据 2 5 CDBs 2 6 加载CDT的启动过程
  • 实现智能化运维的关键驱动力,你知道可观测性工具吗

    可观测性是指根据系统产生的数据评估内部系统状态的能力 对于IT运维团队来说 可观测性工具是非常重要的 通过这些工具 IT团队可以同时观察或深入了解IT基础架构中不同应用程序和资源的健康状况和状态 从而主动检测异常 分析问题并解决问题 可观测
  • linux centos使用rz、sz命令上传下载文件

    一般情况下 我们会使用终端软件 如 XShell SecureCRT 或 FinalShell 来连接远程服务器后 使用 rz 命令上传本地文件到远程服务器 再解压发版上线 一 安转使用 系统 Linux CentOS 7 安装 rz 和
  • Metasploit使用msfconsole命令启动时,报错‘/usr/share/metasploit-framework/......’

    当使用msfconsole命令启动时 msf无法启动 且报错 解决办法 1 更新apt程序库 apt get update 2 更新metasploit 框架 apt get install metasploit framework 3 重
  • 【C++项目】【报错】[错误] new: No such file or directory, compilation terminated【及解决方法】

    一 问题描述 C源代码文件在编译过程中报错 错误 new No such file or directory compilation terminated 代码如下 include
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中
  • 服务器的丢包率高怎么办

    网络出现丢包状况了怎么办 具体情况可以从以下几点来判断 1 有可能是线路故障导致的 所以可以用光纤打光仪先判断是否是光纤的问题 2 对于设备方面来说 很多都是网络接口的光纤接触不良等 3 也可能是操作系统的问题 比如网卡问题和网络运营线路问
  • element ui弹窗在别的弹窗下方,优先级不高的问题

    在 弹窗 的标签中加入append to body即可解决该问题
  • Python基础(十六、数据容器汇总)

    文章目录 一 数据容器汇总 二 数据容器通用操作 1 遍历 2 通用统计 len 容器 max 容器 min 容器