【python基础】复杂数据类型-列表类型(列表切片)
1.列表切片
前面学习的是如何处理列表的所有数据元素。python还可以处理列表的部分元素,python称之为切片。
1.1创建切片
创建切片,可指定要使用的第一个数据元素的索引和最后一个数据元素的索引。与range函数一样,python在到达指定的第二个索引前面的数据元素后停止。比如要输出列表中的前三个元素,需要指定索引范围为0-3,这将分别输出索引为0、1、2的值。比如,要切片处理之前学员名单的列表。
其语法格式:列表变量名[起始索引值,终止索引值]
编写程序如下所示

我们可以发现输出的结果还是一个列表,列表的数据元素值是原始列表中的第0个、第1个、第2个索引所对应的数据元素值。我们可以生成列表的任意子集,例如,要提取列表第2-4个元素,可将起始索引指定为1,终止索引指定为4,这样就可以输出索引分别为1,2,3所对应的数据元素值,也就是第2-4个元素。
1.2无起始索引
如果没有指定起始索引,python就会从列表开头开始提取,即从索引为0开始提取,编写程序如下所示

我们发现这两次输出的结果是相同的
1.3无终止索引
如果没有指定终止索引,python就会从起始索引开始一直提取到列表末尾,编写程序如下所示

我们可以发现,此时输出的是索引为3到索引最大为9所对应的数据元素值,即从索引3开始一直到列表结束。
1.4负数索引
之前我们接触过负数索引,-1代表列表末尾的最后一个数据元素,依此类推,-n代表列表末尾的第n个数据元素,因此我们可以结合负数索引,输出从负数索引所代表的位置,一直到列表末尾的这段子集,编写程序如下所示:

我们可以发现输出的是索引为-2,-1所对应的数据元素值。
2.遍历切片
如果我们要遍历列表的部分元素,可在for循环中使用切片。遍历前三个学员名单,并输出他们的名字,编写程序如下所示

在很多情况下,切片很有用。编写Web应用程序时,可使用切片来分页显示信息,并在每页显示数量合适的信息。
3.复制列表
经常需要根据既有列表创建全新列表。要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引。让python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
其语法格式:列表变量名[:]
我们想复制下刚才的学员名单,编写程序如下所示:

我们发现这两个列表中的数据元素是完全相同的,为核实我们确实经过复制,存在两个列表,分别是names和copy_names。下面在每个列表中都添加一个不同的学员姓名,看看这两个列表是否会发生变化。
编写程序如下所示

我们发现这两个列表,再分别添加一个不同的学员姓名之后,列表内,添加上的数据元素是不一致了。这说明实际存在着两个列表。倘若我们只是简单的将names赋值给copy_names,就不会得到两个列表了。编写程序如下所示

我们可以发现虽然names和copy_names各自添加了一个学员名单后,但最后添加了两个学员。这是为什么?
因为简单的将names赋值给copy_names后,names和copy_names在内存中都指向的是同一个列表,这就相当于一个1升水的水池有两个口,刚开始的时候都是关闭的,然后打开1号口,往里面添加1升水,我们通过2号口来观察发现水池里有2升水,假设感觉水位有点高,我们通过2号口,抽出0.5升水之后,现在水池里还剩1.5升水,这个过程中不管我们通过1号口还是2号口来加水、抽水、观察水池水位,其实操作的都是同一个水池。放到程序中,操作的就是同一个列表
而通过列表切片进行复制的列表,此时就相当于有两个水池各有一个口,我们通过1号口观察操作1号水池,2号口观察操作2号水池,此时因为水池不是同一个,所以进行不同操作后观察到的水池状况是不一样的。放到程序中,操作的就是两个不同的列表
【python基础】复杂数据类型-列表类型(列表切片)的更多相关文章
- python基础之数据类型/字符串/元组/列表/字典
Python 数据类型 数字类型: int整型,long 长整型(在python3.0里不区分整型和长整型).float浮点型:complex复数(python中存在小数字池:-5--257):布尔值 ...
- 第五篇:python基础之循环结构以及列表
python基础之循环结构以及列表 python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...
- 第二章:python基础,数据类型
"""第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- Python学习day04 - Python基础(2)数据类型基础
<!doctype html>day04 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...
- python基础一数据类型之字典
摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ...
- python基础一数据类型之列表
摘要: python基础一中写到列表,那么这篇主要讲列表. 1,定义列表 2,列表.元祖.字符串都属于序列,都可以用用索引和切片. 3,列表的方法 1,定义列表 list1 = ['a','b',1, ...
- Python基础——原生数据类型(字典,列表,元组,字符串)
字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...
- python 基础-----数字,字符串,列表,字典类型简单介绍
一.第一个python小程序 1.下载安装python2.7和python3.6的版本及pycharm,我们可以再解释器中输入这样一行代码: 则相应的就打出了一句话.这里的print是打印的意思.你输 ...
- python基础之循环结构以及列表
python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...
随机推荐
- Java多线程开发CompletableFuture的应用
做Java编程,难免会遇到多线程的开发,但是JDK8这个CompletableFuture类很多开发者目前还没听说过,但是这个类实在是太好用了,了解它的一些用法后相信你会对它爱不释手(呸渣男,咋对谁 ...
- cost function 成本函数
cost function 成本函数 cost function-成本函数 1.目标 :实现和探索具有一个变量的线性回归的成本函数. import numpy as np %matplotlib wi ...
- java顺序结构
java顺序结构 java的基本结构就是顺序结构,一句一句执行 package charpter2; public class ShunXu { public static void main(Str ...
- urllib.parse的使用
urllib简介 urllib是pyhton自带的标准库用于网络请求库,无需安装,直接引用 通常用于爬虫开发,API(应用程序编程接口)数据获取和测试 urllib库的4大模块 urllib.requ ...
- rocketMq和kafka对比
为什么在RocketMQ和kafka中选型 在单机同步发送的场景下,Kafka>RocketMQ,Kafka的吞吐量高达17.3w/s,RocketMQ吞吐量在11.6w/s. kafka高性能 ...
- [Git]Git统计代码行数
1 前言 今天,有这么一个需求:小组老大要求咱们[每个人]把[上个月]的[代码行数]统计一下并上报. 成,统计就统计,但那么多项目,总不能让我用手去数吧?何况,时间久了,自己也不清楚自己改了哪些地方了 ...
- SMT贴片加工钢网工艺制作方法
smt贴片加工过程中,首先要进行锡膏印刷,而锡膏印刷的工作原理就是用机器刮刀将锡膏推送到钢网的孔洞中,使锡膏与pcb板的电子元器件接触,为下一步焊接做准备.钢网的作用就是与pcb板焊盘位置固定,使锡膏 ...
- 通过命令快速找到python的路径
查询Python 首先我们需要知道Python安装路径,可以在命令行中逐行执行下面代码 python3 import sys sys.executable
- Mysql中的数据类型注意事项
整型数据类型 MySQL数据类型 含义(有符号) tinyint 1字节,范围(-128~127) smallint 2字节,范围(-32768~32767) mediumint 3字节,范围(-83 ...
- .NET周报 【4月第4期 2023-04-23】
国内文章 2023成都.NET线下技术沙龙圆满结束 https://www.cnblogs.com/edisonchou/p/2023_chengdu_dotnet_club_activity_rev ...