列表和元组

news2024/12/23 21:22:03

2.1序列概述

列表和元组的主要不同在于,列表是可以修改的,而元组不可以。这意味着列表适用于需 要中途添加元素的情形,而元组适用于出于某种考虑需要禁止修改序列的情形。

Python支持一种数据结构的基本概念,名为容器(container)。容器基本上就 是可包含其他对象的对象。两种主要的容器是序列(如列表和元组)和映射(如字 典)。在序列中,每个元素都有编号,而在映射中,每个元素都有名称(也叫键)。

2.2通用序列操作

有几种操作适用于所有序列,包括索引、切片、相加、相乘和成员资格检查。另外, Python还提供了一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。

2.2.1索引

序列中的所有元素都有编号——从0开始递增。可以通过此来访问各个元组。

字符串就是由字符组成的序列。索引0指向第一个元素,这里为字母H。不同 于其他一些语言,Python没有专门用于表示字符的类型,因此一个字符就是只包含一 个元素的字符串。

当你使用负数索引时,Python将从右(即从最后一个元素)开始往左数,因此-1是最后一个 元素的位置。

如果函数调用返回一个序列,可直接对其执行索引操作。例如,如果你只想获取用户输入 的年份的第4位,可像下面这样做:

从上面就可以看出,可以直接对用户输入的进行索引操作。

实战:输入年月日,并打印

months=['January','February','March','April','May','June','July','August','September','October','November','December']
endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+["st"] #这属于英文命名规则,可以baidu下原则

year=input('Year:')
month=input('Month(1-12):')
day=input("Day(1-31):")
           
#year=int(year)
month_number=int(month)
day_number=int(day)

month_name=months[month_number-1]
ordinal=day+endings[day_number-1]
           
print(month_name+' '+ordinal+','+year)

2.2.2切片 

除使用索引来访问单个元素外,还可使用切片(slicing)来访问特定范围内的元素。为 此,可使用两个索引,并用冒号分隔:

你提供两个索引来指定切片的边界,其中第一个索引指定的元素包含在切片内,但第二个索引指定的元素不包含在切片内。

-1表示最后一个数,但是索引使用-1选不到最后一位。如果使用索引0,即到达列表末尾后再前进 一步所处的位置。

事实上,执行切片操作时,如果第一个索引指定的元素位于第二个索引指定的元素后面(在这里,倒数第3个元素位于第1个元素后面),结果就为空序列。好在你能使用一种简写:如果切片结束于序列末尾,可省略第二个索引。

使用上述的方法,就可以访问到最后一位数了 

同样,如果切片开始于序列开头,可省略第一个索引

实战:提取域名

执行切片操作时,显式或隐式地指定起点和终点,但是我们未设置步长信息,在普通切片中,步长为1。这意味着从一个元素移到下一个元素,因此切片包含 起点和终点之间的所有元素。

上述设置的步长就是1,步长为2时,将从起点和终点之间每隔一个元素 提取一个元素。如下

 结合上述切片方法,每隔3个元素取一个点。如下

当然,步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素。

但是设置步长为负数,需要非常小心。步长为负数时,第一个索引必须比第二个索引大。

2.2.3序列相加

用 + 来拼接

不能拼接列表和字符串,虽然它们都是序列。一般而言,不能拼接不同 类型的序列。

2.2.4乘法

将序列与数x相乘时,将重复这个序列x次来创建一个新序列。

当然可以使用这样的方式创建包含指定元素的空列表。

2.2.5成员资格

要检查特定的值是否包含在序列中,可使用运算符in。这个运算符与前面讨论的运算符 (如乘法或加法运算符)稍有不同。它检查是否满足指定的条件,并返回相应的值:满足 时返回True,不满足时返回False。

内置函数len、min和max很有用,其中函数len返回序列包含的元素个数,而min和max分 别返回序列中最小和最大的元素。

在这两个表达式中,调用max和min时指定的实参并不是序列,而直接将数作为实参。

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

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

相关文章

Gradle筑基——Gradle Maven仓库管理

基础概念: 1.POM pom:全名Project Object Model 项目对象模型,用来描述当前maven项目发布模块的基础信息 pom主要节点信息如下: 配置描述举例(com.android.tools.build:gradle:4.1.1)groupId组织 / 公司的名称com.…

clone方法总结Java

Java中Object类当中有许多方法,如图所示: clone方法就是其中一种,分为浅拷贝,深拷贝举一个例子: 浅拷贝: 在Person类当中右键鼠标然后,选中Generate: 然后重写clone方法 protecte…

福昕PDF编辑器自定义快捷方式

你是否为用不惯福昕PDF编辑器自带的快捷键而发愁?今天,我和大家分享一下如何设置自己想要的快捷键方式,希望能对大家有帮助。 步骤一:打开福昕PDF编辑,并找到更多命令 步骤二:切换到键盘一栏,并…

微信小程序基础 --模板语法(4)

模板语法 1、wxml视图结构 1.1 概述 开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/code.html#WXML-%E6%A8%A1%E6%9D%BF 从事过网页编程的人知道,网页编程采用的是 HTML CSS JS 这样的组合,其中 HT…

【热门话题】Debian常用命令指南

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Debian常用命令指南引言1. 文件与目录操作lscdmkdirrmcpmv 2. 包管理aptdpkg 3.…

WSL安装CentOS系统

1.首选找一个linux系统,执行docker命令 docker run -it --rm centos:7 bash 2.开一个新窗口,将系统导出 docker export e0ee25406703 -o centos.tar 3.切换到wsl命令,导入tar包 wsl --import centos D:\wsl\centos D:\wsl\centos.tar cen…

FFmpeg+QT播放器实战1---UI页面的设计

1、播放器整体布局的设计 该部分使用QT的UI工具,进行整体页面设置,如下图1所示: 2、控制布局的设计 创建ctrBar的UI页面并进行页面布局设置,如下图2所示: 将图1中ctrBarWind对象提升为ctrBar类(该界面替代原先的控…

简单好用的文本识别方法--付费的好用,免费的更有性价比-记笔记

文章目录 先说付费的进入真题,免费的来喏!PixPin微信 先说付费的 直达网址!!! 进入真题,免费的来喏! PixPin 商店里就有 使用示例: 可以看到:贴在桌面上的图片可以复制图片中的文字,真的很…

香橙派AIpro使用SSH远程登录

香橙派AIpro可以连接HDMI显示器使用,也可以远程登录。这里采用MobaXterm软件远程登录开发板。 首先要使得控制电脑和香橙派开发板连接到同一个局域网,两者的IP地址能够ping通。在Windows 下可以使用MobaXterm 远程登录开发板,首先新建一个ss…

Imperva 导致的ORAbase 乱码

DBCA Failing Because Of Garbage Characters In ORACLE_BASE Variable (Doc ID 2947963.1)​编辑To Bottom In this Document Symptoms Changes Cause Solution APPLIES TO: Oracle Database Configuration Assistant - Version 19.14.0.0.0 and later Oracle Database - E…

分享活动规划

前两天去参加菁英学院的一些辅导,是关于苏州久富农业机械的发展,看了他们企业的故事,我觉得我们农机很有前景和发展空间,我希望重新经过一次分享活动来分享我的感触,希望能够再次把我学到的内容传输到其他班的同学们 请…

软件需求规范说明模板

每个软件开发组织都会为自己的项目选用一个或多个标准的软件需求规范说明模板。有许多软件需求规范说明模板可以使用(例如ISO/IEC/IEEE2011;Robertson and Robertson2013)。如果你的组织要处理各种类型或规模的项目,例如新的大型系统开发或是对现有系统进行微调&…

「YashanDB迁移体验官」Mysql生产环境迁移至YashanDB数据库深度体验

「YashanDB迁移体验官」Mysql生产环境迁移至YashanDB数据库深度体验 1. 前言1.1 产品介绍1.2 产品架构1.3 产品规格1.3.1 数据库版本支持1.3.2 数据类型支持 2. YMP安装2.1 环境说明2.2 执行安装2.3 访问YMP2.3.1 YMP登录界面2.3.2 YMP迁移流程 3. YMP数据迁移3.1 创建数据源3.…

创新实训2024.05.26日志:落地基于硬盘的数据库服务

1. 需求任务列表 以下描述易学大模型软件的web应用的功能。 用户注册 用户邮箱,密码,验证码开启官方邮箱,用来发验证码(QQ 网易都支持开启smtp协议,找教程,用邮箱不用手机号是为了省买发短信云服务的钱&a…

初识C语言——第二十四天

函数的基本使用和递归 1.函数是什么 2.库函数 3.自定义函数 4.函数参数 5.函数调用 6.函数的嵌套调用和链式访问 7.函数的声明和定义 函数是什么 C语言中函数的分类 1.库函数 2.自定义函数 库函数: 简单的总结,C语言常用的库函数都有: #includ…

关于数据库和数据表的基础SQL

目录 一. 数据库的基础SQL 1. 创建数据库 2. 查看当前有哪些数据库 3. 选中数据库 4. 删除数据库 5. 小结 二. 数据表的基础SQL 1. 创建数据表 2. 查看当前数据库中有哪些表 3. 查看指定表的详细情况(查看表的结构) 4. 删除表 5. 小结 一. 数据库的基础SQL 1. 创建…

YOLOv10 | 手把手教你利用yolov10训练自己数据集(含环境搭建 + 参数解析 + 数据集查找 + 模型训练、推理、导出)

一、前言 本文内含YOLOv10网络结构图 各个创新模块手撕结构图 训练教程 推理教程 参数解析 环境搭建 数据集获取等一些有关YOLOv10的内容! 目录 一、 前言 二、整体网络结构图 三、空间-通道分离下采样 3.1 SCDown介绍 3.2 C2fUIB介绍 3.3 PSA介绍 …

【QT八股文】系列之篇章3 | QT的多线程以及QThread与QObject

【QT八股文】系列之篇章3 | QT的多线程 前言4. 多线程为什么需要使用线程池线程池的基础知识python中创建线程池的方法使用threading库队列Queue来实现线程池使用threadpool模块,这是个python的第三方模块,支持python2和python3 QThread的定义QT多线程知…

【kubernetes】探索k8s集群中金丝雀发布后续 + 声明式资源管理yaml

目录 一、K8S常见的发布方式 1.1蓝绿发布 1.2灰度发布(金丝雀发布) 1.3滚动发布 二、金丝雀发布 三、声明式管理方法 3.1YAML 语法格式 3.1.1查看 api 资源版本标签 3.1.2查看资源简写 3.2YAML文件详解 3.2.1Deployment.yaml 3.2.2Pod.yaml …

数据结构(五)

数据结构(五) 常见的排序算法内部排序交换插入选择归并基数 外部排序基于归并的 常见的排序算法 内部排序 交换 冒泡:每一次运行总会将最小的或者最大的放到前面,如果需要交换,一直在交换 快速排序*:经过…