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

人话学Python-列表

零:序列

        序列是Python中最基本的数据结构。对于序列中的每一个值都有其对应的位置,在Python中称为索引。由于Python中的计数逻辑,第一个索引为0,第二个索引为1,以此类推。

        Python中有6个序列的内置类型:列表、元组、字符串、Unicode字符串、buffer对象和 xrange对象。

一:列表

        列表是最常见、最常用的序列。常用的操作有索引、切片、加、乘、检查成员等。

        创建列表

        对于新建一个列表,通过方括号进行初始化。一个列表中可以存在不同的数据类型。如果要创建空列表在方括号内不添加任何数据即可。

list1 = ['sample a', 2024]
list2 = ["sample b", 1234]
list3 = []

        访问列表

        我们现在已经有了一个列表,现在需要取出其中的数据,这时就需要访问列表中的值。由于列表中的每一个值都有对应的索引,因此可以通过访问索引的方式访问具体数据。

        Python的索引从0开始计数,于是,列表中的第一个数据对应的索引就是0,第二个数据对应的索引是1,以此类推。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0])    # 访问列表第 1 个数据
print(list1[2])    # 访问列表第 3 个数据
print(list1[4])    # 访问列表第 5 个数据>>>ShangHai
>>>red
>>>2024

        对于访问的索引也可以从列表末尾开始计数,此时,末尾第一个值的索引就是-1,倒数第二个值是-2,以此类推。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[-1])    # 访问列表倒数第 1 个数据
print(list1[-3])    # 访问列表倒数第 3 个数据
print(list1[-5])    # 访问列表倒数第 5 个数据>>>1949
>>>blue
>>>Beijing

         如果我们要知道列表中的所有元素,直接输出列表变量名即可。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1)>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]

        如果我们要一次性访问多个数据,比如我们要知道第一个数据到第五个数据的所有值,可以通过方括号的方式进行列表的截取。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:4])    # 访问第 1 到第 5 个数据>>>['ShangHai', 'Beijing', 'red', 'blue']

        使用方括号进行截取的这种方法同样适用于负数索引。

        如果我们要访问从某一个位置开始后面的所有数据,也可以通过方括号实现。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[0:])    # 访问第 1 个数据之后的所有数据>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]

二:列表操作 

        列表元素的添加、更新和删除

        列表元素的添加可以通过加法操作直接实现

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1 += ['yellow']
print(list1)>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']

        也可以通过append()的方法实现。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1.append('yellow')
print(list1)>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow']

        两种方法都是默认在列表末尾添加数据和索引。

        如果我们知道一个数据和它的索引,我们可以通过索引直接修改元素值

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
list1[3] = 'yellow'
print(list1)>>>['ShangHai', 'Beijing', 'red', 'yellow', 2024, 1949]

        对于删除操作可以使用 del 语句,删除后,该位置后面的所有元素会自动向前位移一位,并改变原先索引指向的值。

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
print(list1[2])
del list1[2]
print(list1[2])>>>red
>>>blue

        列表整体操作

list1 = ['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949]
length = len(list1)     # 计算列表长度
print(length)list2 = ['yellow', 1234]
list3 = list1 + list2   # 列表相加,默认添加到末尾
length = len(list3)
print(length)
print(list3)listnum = [1, 2, 3]
listnum *= 4            # 列表元素重复,相当于自己和自己相加n次
length = len(listnum)
print(length)
print(listnum)judge = 3 in listnum    # 判断元素是否存在列表中
print(judge)>>>6
>>>8
>>>['ShangHai', 'Beijing', 'red', 'blue', 2024, 1949, 'yellow', 1234]
>>>12
>>>[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
>>>True

        列表嵌套

        类似与C语言中的多维数组,也可以理解为在“背包里塞背包”

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
listnum = [list1, list2]
print(listnum)print(listnum[0])print(listnum[0][2])>>>[[1, 2, 3, 4], [5, 6, 7, 8]]
>>>[1, 2, 3, 4]
>>>3

三:列表函数和方法 

        函数:

list1 = [0, 1, 2, 3, 4]
print(len(list1))   # 返回列表长度
print(max(list1))   # 返回列表最大值
print(min(list1))   # 返回列表最小值>>>5
>>>4
>>>0

        方法:

list1 = [0, 1, 4, 2, 3]
print('Origin:', list1)list1.append(4)                   # 在列表末尾添加数据
print('append:', list1)print('count:', list1.count(4))   # 计算数据在列表中出现的次数print('index:', list1.index(2))   # 返回数据在列表中第一次出现对应的索引list1.insert(3, 2)                # 在指定索引位置插入数据
print('insert:', list1)list1.pop()                       # 默认删除列表最后一个数据
print('pop:', list1)list1.remove(2)                   # 删除列表中第一次出现的指定数据
print('remove:', list1)list1.reverse()                   # 列表翻转
print('reverse:', list1)list2 = list1.copy()              # 列表复制
print('copy:', list2)list1.sort()                      # 列表递增排序
print('sort:', list1)list2.sort(reverse=True)          # 列表倒序排序
print('sort reverse:', list2)>>>Origin: [0, 1, 4, 2, 3]
>>>append: [0, 1, 4, 2, 3, 4]
>>>count: 2
>>>index: 3
>>>insert: [0, 1, 4, 2, 2, 3, 4]
>>>pop: [0, 1, 4, 2, 2, 3]
>>>remove: [0, 1, 4, 2, 3]
>>>reverse: [3, 2, 4, 1, 0]
>>>copy: [3, 2, 4, 1, 0]
>>>sort: [0, 1, 2, 3, 4]
>>>sort reverse: [4, 3, 2, 1, 0]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 三星麦康的OI与UI
  • 数据链路层 I(组帧、差错控制)【★★★★★】
  • YOLO目标检测的单目(多目标测距),使用相机光学模型,支持目标检测模型训练,可输出目标位置和距离信息并可视化
  • 【Python机器学习】利用SVD简化数据——示例:基于SVD的图像压缩
  • 倍增算法 最近公共祖先(LCA)C++
  • 低代码开发:机遇与挑战并存的技术革新
  • 大数据系列之:Doris Kafka Connector,实时消费Kafka Topic中的数据同步到Doris数据库
  • 【sql】MySQL中的 JOIN 操作
  • react-redux的使用
  • Java编程中接口与实现分离的七种关键技术和设计模式
  • 【OpenHarmony4.1 之 U-Boot 2024.07源码深度解析】019 - RK3568 Uboot 完整流程梳理
  • plantUML介绍和使用
  • python:画由两条抛物线所围成的图形
  • Vue 3 深入指南:`watch` 属性监控与响应式处理
  • 深入理解java web分层架构的高内聚低耦合
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • git 常用命令
  • js中forEach回调同异步问题
  • Promise面试题,控制异步流程
  • SegmentFault 2015 Top Rank
  • SpringBoot 实战 (三) | 配置文件详解
  • sublime配置文件
  • vagrant 添加本地 box 安装 laravel homestead
  • Vultr 教程目录
  • 好的网址,关于.net 4.0 ,vs 2010
  • 机器学习学习笔记一
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 物联网链路协议
  • 白色的风信子
  • Java数据解析之JSON
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #NOIP 2014# day.2 T2 寻找道路
  • $NOIp2018$劝退记
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (C#)获取字符编码的类
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (第30天)二叉树阶段总结
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一)VirtualBox安装增强功能
  • .NET : 在VS2008中计算代码度量值
  • .Net 8.0 新的变化
  • .NET Core中的去虚
  • .Net Web窗口页属性
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /etc/motd and /etc/issue
  • :如何用SQL脚本保存存储过程返回的结果集
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [AI 大模型] 百度 文心一言