列表和元组

2023-11-07

1序列概述

  1. 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1 ,依此类推。
  2. Python中,常见序列有列表、元组、字符串。
  3. 序列可以进行的操作,有索引,切片,加,乘,检查成员。此外, Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
  4. 列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
概念

索引:从0开始,最后是-1,数据类型为整型(int)
元素:列表和元组的元素可以是不同数据类型,可重复。

2通用序列操作

1. 索引
2. 切片

Python中符合序列的有序序列都支持切片 如:列表,元组,字符
切片的格式:
格式:[start : end : step]
Start:起始索引,从0开始,-1表示结束
End:结束索引
Step:步长
end-start=正数时,从左向右取值,=负数时反向取值

常用的几种方式:
list2=list1[:] 全部截取
list1[0:3;1] 从0开始到3每次增加1截取,不包含索引结束位置
[0:-1:1]:从0开始到结束,每次增加1,截取不包含索引结束位置
[:3]:默认从起始位置索引,每次增加1截取,结束位置索引为3
[3:0:-1]反向取值,每次增加1截取,不包含索引结束位置

3. 序列相加
print([1,2,3]+[4,5,6])                      #输出结果:[1,2,3,4,5,6]
print("Hello" + "world")                    #输出结果:Helloworld
print([1,2,3,4,5] + ["Hello"])              #输出结果:[1, 2, 3, 4, 5, 'Hello']
print([1,2,3,4] + ['H','e','l','l','o'])    #输出结果:[1, 2, 3, 4, 'H', 'e', 'l', 'l', 'o']
#print([1,2,3,4,5,6] + "Hello")             序列不能和字符串相加,抛出异常
#print([1,2,3,4] + 5,6,7,8)                 序列也不能和数值相加,抛出异常

4. 乘法
print("hello" * 3)      #输出结果:hellohellohello
                            #复制字符串
print([20] * 5)         #输出结果:[20, 20, 20, 20, 20]
                            #复制序列
"""
如果想创建一个占用6个元素空间,这个时候需要用到None
None是一个Python的内建值,它表示"这里什么也没有"
"""
print([None]*6)         #输出结果:[None,None,None,None,None,None]
5. 常用内置函数
1. 长度len()
2.  最小值min()
3. 最大值max()
d=[1,2,3]
print(len(d))        #输出结果: 3
min_x=[1,2,3]
print(min(min_x))    #输出结果: 1
max_y=[1,2,3]
print(max(max_y))    #输出结果: 3

3列表与元组

列表

列表元素特点:可修改,可重复,可嵌套,支持多种数据类型

  1. 函数list()
  2. 基本列表操作
    1. 创建 name = list()或[] 或[1, 2]或[1, [1, 2]]
    2. append extend
    3. del clear pop remove
    4. name[1]=2
      1. count, index
      2. 内置函数min, max, len, in, not in
元组

元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号
元组创建很简单,只需要在小括号中添加元素,并使用逗号隔开
即可。
元组元素特点:可重复,不可修改,可嵌套,支持多种数据类型。

常用方法
  1. list.append(obj)
  2. list.count(obj)
  3. list.extend(seq)
  4. list.index(obj)
  5. list.insert(index, obj)
  6. list.pop([index=-1])
  7. list.remove(obj)
  8. list.reverse()
  9. list.sort( key=None, reverse=False)
    10
number = [5,9,6,8,1,2,4,3,7]
print(number)                            #输出结果:[5, 9, 6, 8, 1, 2, 4, 3, 7]

"""sort()方法用于源列表进行排序,注意:数据类型必须相同"""
number.sort()
print(number)                            #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

"""append()方法用于在列表末尾添加新的元素"""
number.append(9) 
print(number)                            #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 9]

"""count()方法用于统计某个元素在列表中出现的次数"""
print(number.count(9))                   #输出结果:2
print(number.count(1))                   #输出结果:1

"""extend()方法用于在列表末尾一次性追加另-个序列中的多个值(用新列表扩展原来的列表)"""
number_1 = [11,12]
number.extend(number_1)
print(number)                            #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 11, 12]

"""index()方法用于从列表中找出某个值第一个匹配项的索引位置 """
print(number.index(1))                   #输出结果:0
print(number.index(5))                   #输出结果:4

"""insert()函数用于将指定对象插入列表的指定位置 """
number.insert(0,0)#insert(插入位置,插入参数)                      
print(number)                            #输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 11, 12]

"""pop()方法用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值"""
number.pop()
print(number)                            #输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 11,]
print(number.pop(0))                     #输出结果:0
print(number)                            #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 11]

"""remove()方法用于移除列表中某个值的第一个匹配项"""
number.remove(9)
number.remove(9)#一次只能移除一个
print(number)                            #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 11]

"""reverse()方法用于反向列表中元素"""
number.reverse()
print(number)                            #输出结果:[11, 8, 7, 6, 5, 4, 3, 2, 1]

总结

列表形式及元素特点是什么?
列表在方括号内, 元素以逗号分隔
列表元素特点:可重复,可修改,可嵌套,支持多种数据类型。

元组形式及元素特点是什么?
元组在小括号中,使用逗号隔开元素。
元组元素特点:可重复,不可修改,可嵌套,支持多种数据类型。

列表与元组区别是什么?
元组与列表不同之处在于元组的元素不能修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

列表和元组 的相关文章

  • AVR单片机最小系统 基本硬件线路与分析

    AVR单片机最小系统 基本硬件线路与分析 AVR仿真器 AVR编程器 二合一 AVR JTAG与ISP 二合一V2 5 经典推荐 298 00元 富士通 MB90092 DEMO OSD视频字符叠加开发板 380 00元 国产 AVR JT
  • Wireshark使用技巧

    前言 Wireshark是一款图形界面的网络嗅探器 支持多种平台 是网络流量分析的利器 它的创始人是Gerald Combs 前身是Ethereal 作为开源项目经过众多开发者的完善它已经成为使用量最大的安全工具之一 最近刚把 Wiresh
  • 翰文进度计划软件横道图不显示文字_斑马进度计划2019,编制进度计划仅需8步!请收藏...

    斑马进度计划2019新功能简介 大突破 从此双代号网络计划支持父子结构啦 计划分分钟逐级拆解细化 前锋线也能自下而上反馈进度 进行多级管控里程碑预警啦 还有大家最心心念的TPM 全面计划管理 设计 招采 施工以及各专业全面联动计算 从此 项
  • 使用Crash工具分析 Linux dump文件

    前言 Linux 内核 以下简称内核 是一个不与特定进程相关的功能集合 内核的代码很难轻易的在调试器中执行和跟踪 开发者认为 内核如果发生了错误 就不应该继续运 行 因此内核发生错误时 它的行为通常被设定为系统崩溃 机器重启 基于动态存储器
  • 软件测试行业就业前景到底怎么样?

    软件测试就业前景非常好 目前IT行业对于软件测试方面的人才需求是非常大的 软件产品的质量对于一个软件来说是攸关生死的 各企业越来越重视软件产品质量 而软件测试的工作就是让软件质量越来越好 还有就是软件测试的工资待遇是非常好的 和其它职业相比
  • 《数据库系统概论》课程学习(26)——习题集(第1-14章)含答案

    数据库系统概论习题集 第一章 绪论 一 选择题 1 DBS是采用了数据库技术的计算机系统 DBS是一个集合体 包含数据库 计算机硬件 软件和 A 系统分析员 B 程序员 C 数据库管理员 D 操作员 2 数据库 DB 数据库系统 DBS 和
  • ssm框架整合(项目步骤)

    目录 一 前言 二 SSM框架 2 1 SSM整合到底整合什么 2 2 为什么要整合到一起 2 3 由谁来整合 2 4 ResponseBody注解的作用是什么 2 5 JSON 三 各框架应用场景 3 1 SpringMVC框架 3 2
  • 建立单链表并交换表中任意两个元素

    功能 建立单链表并交换表中任意两个元素 time 2017年3月12日15 07 25 include
  • 2021年 IEEE VIS 科学可视化与体渲染论文整理与分析

    因为最近工作的关系 需要研究一下IEEE VIS中2017年以后的与我之前主要方向 体渲染 医学可视化 有关的论文 我把这些年全部的论文进行了筛选和梳理 总共筛选出57篇论文 打算写一个文章来记录这些内容 这个栏目是2021年的九篇论文的介
  • MNIST数据库介绍及转换

    MNIST数据库介绍 MNIST是一个手写数字数据库 它有60000个训练样本集和10000个测试样本集 它是NIST数据库的一个子集 MNIST数据库官方网址为 http yann lecun com exdb mnist 也可以在win
  • springMVC ResponseBody 返回汉字乱码解决方案

    本文查考借鉴 http blog yimik com archives 899 js里通过ajax调用springmvc 后台返回的中文字符串乱码 通过搜索找解决方 大都让配置StringHttpMessageConverter这个bean
  • 本地JAR打镜像,并启动

    1 准备好jar 和Dockerfile文件 2 使用命令打镜像 docker build t wstest 3 查看镜像 4 由于服务是两个端口 使用以下命令 5 优化怎么随着docker的开启而启动 docker run restart
  • Maltrail恶意流量检测系统

    Maltrail恶意流量检测系统 项目介绍 项目GitHub地址 项目架构 项目数据集 运行方式 订阅源扩展 数据采集模块提取 项目介绍 maltrail是一款轻量级的恶意流量检测系统 其工作原理是通过采集网络中各个开源黑样本 包括IP 域
  • python操作sql

    from pymysql import connect def main 创建connection连接 conn connect host localhost port 3306 user root password 123456 data
  • 深入浅出UML类图(一)

    在UML 2 0的13种图形中 类图是使用频率最高的UML图之一 Martin Fowler在其著作 UML Distilled A Brief Guide to the Standard Object Modeling Language
  • Redis中key-value实现

    实现字典的方法有很多种 最简单的就是使用链表或数组 但是这种方式只适用于元素个数不多的情况下 要兼顾高效和简单性 可以使用哈希表 如果追求更为稳定的性能特征 并且希望高效地实现排序操作的话 则可以使用更为复杂的平衡树 在众多可能的实现中 R
  • JAVA8新特性--集合遍历之forEach

    java中的集合有两种形式Collection
  • 5.2 activiti任务监听器TaskListener

    1 任务监听器定义 任务监听器用于在特定的任务相关事件发生时 执行自定义的Java逻辑或表达式 2 监听器监听的事件 String EVENTNAME CREATE create 创建 当任务已经创建 并且所有任务参数都已经设置时触发 St
  • Basic Level 1090 危险品装箱 (25分)

    题目 集装箱运输货物时 我们必须特别小心 不能把不相容的货物装在一只箱子里 比如氧化剂绝对不能跟易燃液体同箱 否则很容易造成爆炸 本题给定一张不相容物品的清单 需要你检查每一张集装箱货品清单 判断它们是否能装在同一只箱子里 输入格式 输入第
  • Linux期末复习总结

    目录 Linux 系统的结构 shell Linux用户类型及其用户主目录 shell提示符 输入输出重定向 标准输入 输出设备 Linux文件的类型 Linux 的目录结构 基本操作命令 链接命令 ln 链接的特点 tar命令举例 vi

随机推荐

  • 求一批整数中出现最多的各位数字

    描述 给定一批整数 分析每个整数的每一位数字 求出现次数最多的各 位数字 例如给定3个整数1234 2345 3456 其中出现最多次数的数字是3和4 均出现了3次 输入 输入在第1行中给出正整数N 1000 在第二行中给出N个不超过整型范
  • QT QLinearGradient (颜色渐变---应用控件背景渐变)

    示例 frame gt setStyleSheet background color qlineargradient spread pad x1 0 y1 0 x2 1 y2 0 stop 0 030303 stop 0 5 030303
  • 多线程及多进程的选择

    我的理解是进程是指在系统中正在运行的一个应用程序 程序一旦运行就是进程 或者更专业化来说 进程是指程序执行时的一个实例 线程是进程的一个实体 进程 资源分配的最小单位 线程 程序执行的最小单位 线程进程的区别体现在几个方面 0 因为进程拥有
  • 【手撕代码系列】JS手写实现bind方法

    公众号 Code程序人生 分享前端所见所闻 在JavaScript中 bind方法允许我们绑定函数的上下文并返回一个新的函数 在这篇文章中 我们将手写实现bind方法 以更好地了解它的内部工作原理 bind方法的语法 bind方法的语法如下
  • 整数转化为罗马数字

    1 问题描述 罗马数字包含以下七种字符 I V X L C D 和 M 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如 罗马数字 2 写做 II 即为两个并列的 1 12 写做 XII 即为 X
  • 多线程互斥锁 pthread_mutex 的使用及初始化问题

    一 互斥锁pthread mutex的使用 1 初始化锁 有两种方法初始化互斥锁 静态方式和动态方式 静态方式 pthread mutex t mutex lock PTHREAD MUTEX INITIALIZER 在LinuxThrea
  • 软件测试流程/需求分析之软件需求概述

    今天重点从四个方面来和大家对需求阶段需求分析做一个讲解 阅读测试文档 参与需求评审 测试需求分析 提取功能点 去做这些对应的事情之前 我们要先了解到底什么是需求 需求评审我们要从哪些点去评审 我们要去提取功能点要怎么样去进行提取 回忆测试流
  • 使用ffmpeg将mkv,rmvb转换成mp4

    cmd输入ffmpeg version 检查ffmpeg安装版本 1 进入mkv rmvb所在的文件夹 2 转换mkv ffmpeg i inputname mkv c v copy c a copy outputname mp4 转换rm
  • 几种优化算法(求最优解)

    几种优化算法 先简单备注下 今后接触到再看 参考资料 http blog sina com cn s blog 6a1bf1310101hhta html
  • SpringBean管理

    一 什么是SpringBean 在Spring中将管理对象称为 Bean Bean是由一个SpringIOC容器实例化 组装和管理的对象 也就是说 Bean并不是由我们程序员编写的 而是在程序运行过程中 由Spring通过反射机制生成的 S
  • 串口通信开发

    一开始做串口通信开发时 觉得并不难 无非就是发送 然后等一会 再接收就完事了 其实里面的水很深 特别是在各种设备都有的情况下 我们在整个开发过程中 遇到了以下的几个主要问题 1 设备出现严重的延迟 2 接收过程出现数据粘包或截断 3 多设备
  • 华为OD机试-目录删除

    Online C compiler to run C program online include
  • 解决错误:Plugin with id 'com.android.application' not found

    本文转载地址 https blog csdn net qq 26819733 article details 50935632 Error 1 0 Plugin with id com android application not fou
  • C++中的转移字符

    C 中转移字符 顺序 描述 表示 单引号 字节0x27 ASCII编码 双引号 字节0x22 ASCII编码 问号 字节0x3f ASCII编码 反斜线 字节0x5c ASCII编码 a 可听见钟 字节0x07 ASCII编码 b 退格 字
  • 深度学习方法在道路提取、图像检索上的几篇文章阅读笔记

    关于全卷积神经网络的upsampling还没有搞清楚 如果你有合适的资料或者好方法 欢迎评论交流 深度学习方法在道路提取上的应用1 传统方法 A review of road extraction from remote sensing i
  • Siebel Open UI

    阅读原文 http blog sina com cn s blog 70ea5c9101017qi4 html Open UI最常提到的特性是 W3C标准兼容 可在任何符合标准的浏览器上使用 可跨多种形式的因素 客户端JavaScript框
  • ESP32上实现LVGL的界面显示

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 元器件 二 导入库 三 调试TFT eSPI 四 调试LVGL 总结 前言 基于Vscode中的 PlatformIO平台arduino框架 使用1 8
  • nrm安装报错,解决方案

    nrm安装报错 下方为错误信息 C Users kefu gt nrm version internal validators js 124 throw new ERR INVALID ARG TYPE name string value
  • vue-codemirror设置输入自定义提示效果

    概要 提示 通过使用 vue codemirror 4 0 6 实现输入提示 类似于vscode提示效果 效果图 实现原理 1 得到光标位置 定义提示内容 handleShowHint 获取输入框实例 const cmInstance th
  • 列表和元组

    1序列概述 序列是Python中最基本的数据结构 序列中的每个元素都分配一个数字 它的位置 或索引 第一个索引是0 第二个索引是1 依此类推 Python中 常见序列有列表 元组 字符串 序列可以进行的操作 有索引 切片 加 乘 检查成员