当前位置: 首页 > news >正文

python3列表与元组

1 列表

1.1 列表简介

  • 序列是 Python 中最基本的数据结构。
  • 序列中的每个值都有对应的位置值,称之为索引(index):
    • 第一个索引是 0
    • 第二个索引是1
    • …依此类推
  • python中的列表(list)是一种有序且可变的集合,用于存储多个元素。
  • 列表中的元素可以是不同数据类型,如整数、浮点数、字符串等,甚至可以包含其他列表、元组、字典和集合等。
  • 列表使用方括号“[]”创建,元素之间用逗号“,”隔开。
# 空列表
list1=[]
# 数字
list2=[1,2,3,4,5]
# 字符串
list3=['a','bb','ccc','dddd','eeeee']
# 数字和字符串
list4=['a','bb',3,'dddd',5]
  • 列表是可变的,可以在创建后修改、添加或删除其元素。
  • 列表的数据项可以是不同的类型

1.2 列表操作

1.2.1 访问列表中的值

  • 列表索引从 0 开始,第二个索引是1;索引也可以从尾部开始,最后一个元素的索引为-1,往前一位为-2,以此类推
  • 示例:
list=[1,2,3,4,5]
# 输出整个列表的值
print(list)
# 输出列表指定位置的值
print(list[0])
print(list[-1])
print(list[len(list1)-1])
# 如果索引超过了最大的范围,就会抛出异常:list index out of range
print(list[10])

1.2.2 切片

  • 切片指从现有列表中,获取一个子列表
  • 遵循左闭右开原则,用法和字符串相同
  • 格式:[开始索引:结束索引:步长]
  • 示例:
list=[1,2,3,4,5]
print(list[1:3])
# 结束索引默认为列表的长度
print(list[1:])
# 开始索引默认为0
print(list[:3])
# 步长默认为1
print(list[0:5:2])
print(list[::-1])

1.2.3 更新列表

  • 向列表中插入新的元素
list=[1,2,3,4,5]
# 在列表的末尾插入新的元素
list.append(6)
print(list)
# 在列表的指定位置添加新的元素,原列表元素向后移动
list.insert(1,123)
print(list)
  • 删除列表元素
list=['a','bb','ccc','dddd','eeeee']
# 删除列表中匹配到的元素
list.remove('ccc')
print(list)
# 删除列表中指定位置的元素
del list[1]
print(list)
# 清空列表
list.clear()
print(list)
# 删除列表变量
del list
print(list)
  • 列表元素出栈,与删除类似
list=['a','bb','ccc','dddd','eeeee']
# 获取指定索引位置元素的值,将其出栈
list.pop(1)
print(list)
# 不写位置,默认从后往前进行出栈操作
list.pop()
print(list)
list.pop()
print(list)
  • 合并列表
list1=['aaa','bbb','ccc','ddd','eee']
list2=['fff','ggg','hhh','iii','jjj']
list3=list1+list2
print(list3)
list1.extend(list2)
print(list1)
  • 获取元素的位置
list=['a','bb','ccc','dddd','eeeee']
print(list.index('ccc'))
  • 遍历列表
# 迭代列表的遍历
list=['a','bb','ccc','dddd','eeeee']
for i in list:print(i)
for j in range(len(list)):print(list[j])
# 出栈遍历列表,倒叙输出	当列表不为空时
while list:print(list.pop())
print(list)

1.2.4 列表脚本操作符

  • 列表对 + 和 * 的操作符与字符串相似
    • +号用于组合列表
    • *号用于重复列表
表达式结果描述
len([1,2,3])3长度
[1,2,3]+[4,5,6][1,2,3,4,5,6]组合
[‘Hi!’]*4[‘Hi!’,‘Hi!’,‘Hi!’,‘Hi!’]重复
3 in [1,2,3]True元素是否存在与列表中
for x in [1,2,3]
print(x,end=‘’)
1 2 3迭代

1.3 常用函数

函数说明
len(list)列表元素个数
max(list)列表元素最大值
min(list)列表元素最小值
list(seq)将元组转换为列表

1.4 常用方法

方法说明
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.extend(obj)在列表末尾追加另一个列表中的所有所有值
list.index(obj)从列表中查找某个值第一次匹配到的索引位置
list.insert(index,obj)将元素插入列表中的指定位置
list.pop(index)移除列表中指定位置的元素,默认最后一个
list.remove(obj)移除列表中第一个匹配到的值
list.reverse()反向列表中的元素
list.sort(key=None,reverse=False)对列表进行排序,默认升序
list.clear()清空列表
list.copy()复制列表

2 元组

  • Python 的元组(tuple)与列表类似,不同之处在于元组的元素不能修改
  • 元组创建很简单,只需要在小括号( )中添加元素,并使用逗号隔开即可。
tup1=(1,2,3,4,5)
tup2=('a','bb','ccc','dddd','eeeeee')
tup3=('a','bb',3,4,5)
  • python允许创建空元组
  • 元组中只包含一个元素时,需要在元素后面添加逗号’,‘,否则括号会被当作运算符使用
tup1=()
print(type(tup1))
tup2=('a')
print(type(tup2))
tup3=('a',)
print(type(tup3))

2.1 元组的操作

  • 元组可以使用下标索引来访问元组中的值,详情参考列表
tup1=(1,2,3,4,5)
print(tupl)
print(tupl[0])
  • 元组中的元素值是不允许修改的,但可以对元组进行连接组合
# 合并后的元组是一个新的元组,
tuple1=(1,2,3,4,5)
tuple2=(6,7,8,9,10)
print(tuple1)
print(id(tuple1))
tuple1=tuple1+tuple2
print(tuple1)
print(id(tuple1))
  • 元组中的元素值是不允许删除的,但可以使用del语句来删除整个元组
  • 格式:del 元组
tup1=(1,2,3,4,5)
del tup1

2.2 元组的操作符

  • 与字符串一样,元组之间可以使用+、+=和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

2.3 元组内置函数

函数说明
len(tuple)元组元素个数
max(tuple)元组元素最大值
min(tuple)元组元素最小值

2.4 元组是不可变的

  • 元组的不可变指的是元组所指向的内存中的内容不可变
    • 包括其中的元素与元组本身
tup1=(1,2,3,4,5)
tup1[0]=100
http://www.lqws.cn/news/450793.html

相关文章:

  • 前端如何禁止用户复制?
  • Java excel坐标计算
  • macOS - 根据序列号查看机型、保障信息
  • Chromium 136 编译指南 macOS篇:获取源代码(四)
  • LabVIEW工业指针仪表检测
  • Labview教程进阶一(Labview与OPC UA设备通信)
  • 装饰器模式深度解析:Java设计模式实战指南与动态功能扩展最佳实践
  • CppCon 2017 学习:Migrating a C++03 library to C++11 case study
  • nginx的下载与安装 mac
  • 【前端隐蔽 Bug 深度剖析:SVG 组件复用中的 ID 冲突陷阱】
  • Kafka协议开发总踩坑?3步拆解二进制协议核心
  • 中文Windows系统下程序输出重定向乱码问题解决方案
  • pip install下载安装后的文件所在位置
  • Lombok常用注解总结
  • 4.文件管理(文本、日志、Excel表)
  • 亚马逊云科技中国峰会
  • httpclient实现http连接池
  • 【Python小练习】3D散点图
  • 服务网格安全(Istio)从入门到实践
  • Kotlin 中ArrayList、listOf、arrayListOf 和 mutableListOf区别
  • 电力企业数字化——解读44页电力集团战略实施和集团对标一体化指标体系框架【附全文阅读】
  • Zephyr 系统深入解析:SoC 支持包结构与中断调度器调优实践
  • [设计模式]创建型模式-单例模式
  • Deepseek+墨刀,1min快速生成流程图!
  • iOS APP上架App Store实践:通过自动化流程和辅助工具高效提
  • 传输层协议UDP/TCP
  • Linux运维笔记:在 Ubuntu 工作站上安装 PyCharm 社区版并配置多用户访问
  • 悦数图数据库v5.1原生向量赋能
  • 【时时三省】(C语言基础)善于利用指针
  • 传感器:基于STM32F103/407系AHT20温湿度传感器数据采集