Python语言第三章之容器类型(list, tuple)

高级数据类型

Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型)

  • 数字型包含:整型int、浮点型float、布尔型bool、复数型complex
  • 非数字型包含:字符串str、列表list、元组tuple、集合set、字典dict

高级数据类型的特点

  • 都是一个序列 sequence,也可以理解为 容器
  • 获取某一个元素 数据集[index] (集合除外,无序的)
  • 通过for循环遍历
  • 都可以计算长度、最大/最小值、比较、删除
  • 连接 + 和 重复 *
  • 切片,获取容器一部分

容器类型

1. 列表 list

列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素
列表的类型是:list

1.1 列表的定义

列表用[]定义,元素之间用逗号,分隔

namesList = ['林青霞','张曼玉','胡慧中']

1.2 访问列表的元素

查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标
索引是从0开始的,例如:第一个元素,索引就为0

1.2 常用方法  

可以通过for遍历列表中的元素

namesList = ['林青霞','张曼玉','胡慧中']
# 遍历列表
for name in namesList:print(name)

列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作

nameList = ["张三", "李四", "王五"]
name = nameList[0]
# print(name)# for n in nameList:
#     print(n)"""添加 append
"""
# nameList.append("王二麻子")
# for n in nameList:
#     print(n)"""删除索引 pop负数从后往前删除, -1 最后一个, -2 倒数第二个
"""
# nameList.pop(2)
# nameList.pop(-1)
# print(nameList)"""删除某一项 remove
"""
# nameList.remove("李四")
# print(nameList)"""修改 直接通过[下标] 修改
"""
# nameList[0] = "6666"
# print(nameList)"""
查询元素 [下表查询] 或者
列表.index(元素) 查找下标用的
"""
name2 = nameList.index("张三")
print(name2)  # 0
"""
升序排序 sort
"""
ageList = [10, 30, 20, 15, 12, 5, 9]
# 从小到大排序
# ageList.sort()
# print(ageList)
"""
降序排序 sort(reverse = True)
"""
# ageList.sort(reverse=True)
# print(ageList)"""
反转 reverse
"""
ageList.reverse()
print(ageList)

1.3 列表嵌套

列表中的元素可以是列表类型的数据,就称为列表的嵌套

stuList = [[1, 2, 3],["张三", "李四", "王五"]
]# 查询
# print(stuList[0][1])  # 2
# print(stuList[1][2])  # 王五# 修改
# stuList[0][0] = 6
# print(stuList)stuList.append(["aa", "bb"])
print(stuList)

1.4 列表案例: 办公室分配

需求

一个学校,有3个办公室,现在有8位老师等待工位的分配

['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']

请编写程序:

  1. 完成随机的分配
  2. 打印办公室信息 (每个办公室中的人数,及分别是谁)

分析

1. 定义3个办公室的列表:列表嵌套
2. 声明8位老师到列表中
3. 遍历老师的列表
4. 随机存放到办公室中

提示:获取随机数

import random# 八个老师 列表中保存
teacherList = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']# 三个办公室 列表嵌套
classList = [[], [], []]for tea in teacherList:# 随机办公室坐标index = random.randint(0, 2)# 随机放入办公室中classList[index].append(tea)
print(classList)

2. 元组 tuple

Python的元组与列表类似,也是容器的一种,不同之处在于元组的元素不能修改

  • 用于存储 一串 数据,元素之间使用 , 分隔
  • 元组的索引从 0 开始
  • 元组的类型:tuple

元组的定义

元组用 () 定义

names_tuple = ('林青霞','张曼玉','胡慧中')

注意:一个元素的元组定义需要在元素后加上,

# 错误定义方式 ❌
names_tuple = ('林青霞')
# 正确定义方式 ✅
names_tuple = ('林青霞',)

元组的特点和作用

元组作为一种高级数据类型,具备如下的特点

组包和拆包

自动组包

t的类型是元组类型,这就是元组的自动组包特征

t = '林青霞','张曼玉','王祖贤'
自动解包
# 定义元组t = ('林青霞','张曼玉','王祖贤')# 变量赋值name1,name2,name3 = t

元组t会自动解包分别赋值给name1、name2、name3三个变量
注意:左边变量的个数一定要和元组的元素个数保持一致

3. 交换数据

交换数据在其它语言中的实现如下:

a = 10
b = 20
# 交换a和b
tmp = a
a = b
b = tmp

可以利用元组的组包和解包特点,,速交换两个数据

a = 10
b = 20
# 交换a和b
a,b = b,a

上述交换,首先右边会进行自动组包,组成新的元组(20,10)

左边会把元组解包,元素分别赋值给ab,最终实现交换的功能

4. 让列表不可修改

有时我们传递列表数据给别人使用,希望别人不要修改列表

可以把列表转换成元组,这样就变成了不可变的数据

lst = [10, 20, 30]
# 将列表转换成元组
tp = tuple(lst)# 不可执行如下类似操作
tp[0] = 111
tp.append(222)

如果运行执行会报出如下错误:TypeError: 'tuple' object does not support item assignment​​

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

在线测径仪的六类测头组合形式!哪种适合你?

在线测径仪,这一现代工业的精密仪器,犹如一位技艺高超的工匠,以其卓越的性能和精准度,为工业生产提供了坚实的保障。它的出现,不仅提高了生产效率,更保证了产品质量,为企业的可持续发展注入了强…

360在线翻译免费API

一、需求: 根据360在线翻译,获取免费API,并调用 二、主要步骤 1、请求 url url "https://fanyi.so.com/index/search" 2、传入信息 datas {"query": "桌子"} 3、请求头 headers {"pro": &…

【好书推荐7】《机器学习平台架构实战》

【好书推荐7】《机器学习平台架构实战》 写在最前面《机器学习平台架构实战》编辑推荐内容简介作者简介目  录前  言本书读者内容介绍充分利用本书下载示例代码文件下载彩色图像本书约定 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光&…

wireshark RTP分析参数

主要看丢弃和Delta, 丢弃就是丢掉的udp包,所占的比率 Delta是当前udp包接收到的时间减去上一个udp包接收到的时间 根据载荷可以知道正确的delta应该是多少,比如G711A,ptime20,那么delta理论上应该趋近于20. 这里的de…

python合并不同文件夹相同文件名的文件

要求: 合并来自不同文件夹下相同csv文件,如: 三个文件夹均含有1.csv,2.csv,3.csv等等文件,现在对文件进行合并。思路:先创建一个文件名list,然后遍历。 python代码: da…

ubuntu下安装python模块 pip intall xxx报错

报错内容大概如下&#xff1a; WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError(<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f0fc68d6370>: Failed to establ…

不得不说,ArcGIS Pro的分析制图实在是太强大啦!

在大数据、信息化、智能化时代&#xff0c; ArcGIS Pro 高效、丰富的空间分析制图功能&#xff0c; 在数据管理与底图底数、空间分析辅助决策、实景模拟与成果制图等方面实在是太强大啦&#xff01; 这六大强力核心应用&#xff0c;在国土、地理、规划、测绘、自然资源管理、…

实用监控局域网上网记录的软件盘点,有你常用的吗?

人类步入信息时代的今天&#xff0c;企业监控和家庭网络的监控已经成为一项重要任务。无论是确保网络安全&#xff0c;还是监督员工或孩子的上网行为&#xff0c;监控局域网上网记录的软件扮演着至关重要的角色。 然而&#xff0c;在市场上有众多的监控软件可供选择&#xff0c…

C++/Qt 小知识记录5

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识5 Windows下查看端口占用情况C调用Python三方库测试库有没有被加上的测试方法初始化使用Python的env环境&#xff0c;用Py_SetPythonHome设置GDAL相关的&#xff0c;需要把osgeo、rasterio的路径加入…

一款辅助应用助力盲人公交出行畅行无阻

在这个日新月异的时代&#xff0c;科技进步正以前所未有的速度改变着人们的生活方式&#xff0c;尤其是在提升特殊群体生活质量方面展现出巨大潜力。今日&#xff0c;我们将目光聚焦于盲人公交出行&#xff0c;探讨一款名叫蝙蝠避障的创新辅助应用如何以其实时避障与拍照识别功…

聊聊 Linux iowait

哈喽大家好&#xff0c;我是咸鱼。 我们在使用 top 命令来查看 Linux 系统整体 CPU 使用情况的时候&#xff0c;往往看的是下面这一列&#xff1a; %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 68.0 wa, 0.0 hi, 0.0 si, 0.0 st其中&#xff0c;man 手册解释 wa 表示 …

mac电脑搭建vue环境(上篇)

第一步&#xff1a;mac电脑要有homebrew&#xff0c;如何安装homebrew 点击下方 MAC安装homebrew-CSDN博客 第二步&#xff1a;homebrew安装node.js 第三步&#xff1a;安装npm 第四步&#xff1a;安装webpack 第五步&#xff1a;安装vue脚手架 第六步&#xff1a;可以在…

深入解析YOLOv2

深入解析YOLOv2 引言 目标检测是计算机视觉中的一个核心问题&#xff0c;它旨在识别图像中所有感兴趣的目标&#xff0c;并给出它们的类别和位置。近年来&#xff0c;随着深度学习技术的发展&#xff0c;目标检测领域取得了巨大的进步。YOLO&#xff08;You Only Look Once&a…

Python-VBA函数之旅-input函数

目录 一、input函数的常见应用场景&#xff1a; 二、input函数使用注意事项&#xff1a; 三、如何用好input函数&#xff1f; 1、input函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;神奇夜光杯-CSDN博…

Git命令行操作(本地操作)

入口 1、任意目录》鼠标右键》Open Git Bash here 2、桌面快捷方式 本地库初始化 在本地库项目文件夹执行命令:git init 验证是否执行成功 .git目录中存放的是本地库相关的子目录和文件,不要删除、修改 设置签名 1、形式 用户名:tom Email地址:GoodMorning@qq.com 2、作…

cdp集群主节点根目录磁盘扩容

查看挂载点 df -h可以看到&#xff0c;根目录容量只有37G&#xff0c;现在对根目录进行扩容 查看根目录挂载的磁盘大小 lsblk挂载磁盘名字为vda&#xff0c;磁盘容量有80G&#xff0c;现在磁盘使用量为vda下面三个分区vda1&#xff0c;vda2&#xff0c;vda3容量之和&#xf…

AI测试干货!实例讲解AI自动生成测试用例

1.引言 在软件开发过程中&#xff0c;测试用例的生成是至关重要的一步。测试用例是用于验证软件功能、性能和安全性的具体测试方法&#xff0c;是确保软件质量的关键手段。 随着人工智能&#xff08;AI&#xff09;技术的发展&#xff0c;基于AI的测试用例生成技术逐渐成为未…

报销管理如何秒变高效神器?

一、客户介绍 易快报作为业界知名的企业报销管理平台&#xff0c;一直致力于为企业提供高效、便捷的报销服务。随着业务的不断扩展&#xff0c;易快报面临着与多个外部系统进行数据交互的需求&#xff0c;以提升工作效率和减少数据差错。中信建投作为国内领先的金融机构&#…

Docker镜像与容器操作

一、Docker 镜像操作 1.1 搜索镜像 格式&#xff1a;docker search 关键字 docker search nginx 1.2 获取镜像nginx 格式&#xff1a;docker pull 仓库名称[:标签] 如果下载镜像时不指定标签&#xff0c;则默认会下载仓库中最新版本的镜像&#xff0c;即选择标签为 latest…

DOM4标准的事件监听与滚屏优化

EventTarget.addEventListener() 我们在学习addEventListener()时都只是知道它是用来给事件注册事件处理函数的。但是这种描述并不是很准确&#xff0c;MDN上给我们准确的描述了它的定义。EventTarget.addEventListener()方法将指定的监听器注册到EventTarget上&#xff0c;当…