Python编程技巧 – 使用列表(list)

Python编程技巧 – 使用列表(list)

Python Programming Skills – Using a List

在Python编程语言中,我们会用到许多列表(List)。

一门强大的编程语言会包含列表(或者数组)的数据结构。列表(或数组)是一种可以包含大量其它对象的对象,这些对象被全部存放在一个集合中;而Python最基本的集合类,是列表。它可以完成其它编程语言中数组能完成的全部工作。

1. 创建和使用列表

Python是一门高级编程语言,它是动态的,没有对变量的预先声明;而是对变量直接命名初始化和引用,由解释器来判断它的数据类型。

既然没有声明类型,那么如何创建诸如列表这样的集合呢?

1) 创建列表

在Python中,创建列表的方式,与创建其他数据变量的方式完全相同:

x = [1, 2, 3]

看一下这个赋值语句,得到以下结论:

  • 等号右边是列表将要承载的数据,在这里创建列表;
  • 与其他赋值语句一样,等号左侧是一个变量名,以便引用列表变量。

一旦赋值,变量的类型就确定了;这也是唯一的方法来确定变量的类型。

同样,一个变量最好总是表示一种数据类型。这里,列表集合用list作为后缀来表示。另一个例子如下:

   my_list = [5, -20, 3, -38]

除了整数列表外,列表还可以存储字符串,这也是最常见的方式:

   food_list = [‘meat’, ‘bread’, ‘milk’, ‘fruits’]

创建列表有两种主要方式:

1) 通过append方法将元素一次一个,逐一地添加到列表中,如下代码:
the_list = []
the_list.append(1)
the_list.append(2)
the_list.append(3)
2) 逐个添加元素,和一次性初始化列表,具有相同的结果:
the_list = [1, 2, 3]

*添加完毕后,也可以删除不必要的元素,例如:删除第二个元素:

the_list.remove(2)
2) 列表索引

列表的每个元素,都依照索引值来存储,也依照索引值来访问。例如有以下的列表:

score_list = [100, 98, 89, 75, 95]

要访问第三个值,就按照:列表名[索引值 – 1] 来访问元素;因此,第三个值为:

score_list[2]         # 得到的值是 89

Python支持非负数索引和负数索引。

非负数索引从零开始,和前述的例子一致,访问非负数索引的列表值。

由于列表是可变的,因此列表元素可以在“原位”被替换,而不需要创建全新的列表。这样,通过修改其中一个元素的指向对象,来更改这个元素,而字符串中不可以这样操作:

score_list[2] = 95
3) 正索引

正索引也就是非负索引。类似C++语言的索引号,索引号0表示列表中第一个元素,而索引号1则表示列表中第二个元素,依此类推。

例如,执行命令创建下面这个斐波那契额数列列表:

fibo_list = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

分别用正索引来引用列表值,并打印输出:

print(fibo_list[0])
print(fibo_list[1])
print(fibo_list[2])
print(fibo_list[3])

在这里插入图片描述
尽管列表本身可以无限制地增长,但一旦列表初始化后,它的长度暂时固定,使用的索引号必须在列表范围内,否则,会引发IndexError异常。

例如,如果访问fibo_list超出了列表范围,则会报错,如下图:

print(fibo_list[13])

运行结果如下图:

在这里插入图片描述

4) 负索引

除了用正索引之外,负索引也可以引用列表中的元素。不过,负索引是通过与列表末尾元素的距离,来指定元素。

索引值-1表示列表中最后一个元素(也就是最右一个元素),索引值-2表示列表中倒数第二个元素, -N表示列表中的第一个元素。

同样访问上述的fibo_list, 让我们看以下负索引的结果:

print(fibo_list[-1])
print(fibo_list[-2])
print(fibo_list[-10])

执行结果如下图所示:

在这里插入图片描述

那么, 当列表较长的时候,如何负索引访问第一个元素呢?首先,需要知道列表长度,而我们可以用len这个函数求得这个长度值;然后再访问第一个值。

len(fibo_list)
print(fibo_list[-11])

运行结果如下图:

在这里插入图片描述

至此,了解了列表的创建,以及如何使用列表;可以通过正索引、负索引来访问列表的各个元素。

技术好文陆续推出,敬请关注。

喜欢就点赞哈。😊

相关阅读:
  1. 安装最新版Visual Studio Code来开发Python应用程序
  2. Python编程技巧 - 函数入门
  3. Python编程技巧 - 转换二进制、十六进制和八进制的函数

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

荣誉上榜 | DolphinDB 入选2023年浙江省高新技术企业研发中心名单

近日,浙江省科学技术厅组织开展了2023年省高新技术企业研究开发中心认定工作。在各市科技局推荐的基础上,经评审和复核,发布了《2023年浙江省高新技术企业研究开发中心名单》。DolphinDB 成功入选该名单。 省级高新技术企业研发中心的申报及评…

万能在线答题考试小程序源码系统 既能刷题 又能考试 带完整的搭建教程

现如今,线上学习和考试已经成为一种趋势。近年来,移动端的普及以及微信小程序的兴起,使得在线答题考试系统变得更加便捷和高效。今天罗峰就来给大家介绍一款万能在线答题考试小程序源码系统,既能刷题,又能考试&#xf…

调用 LeaveCriticalSection 出现无效句柄异常

从内部的视角看,一个临界区是一套计数器和标志位的集合,也可能是一个事件对象。 (请注意,临界区的内部结构随时可能更改,事实上,它在 Windows XP 和 Windows 2003 之间发生了变化。因此,此处提供的信息仅用…

如何将 Docsify 项目部署到 CentOS 系统的 Nginx 中?

文章目录 1. 介绍2. 准备工作3. 将 Docsify 项目上传至服务器4. 在服务器上安装 Node.js5. 在服务器上运行 Docsify6. 配置 Nginx 反向代理7. 访问 Docsify 文档8. 拓展8.1 配置 HTTPS8.2 定制 Docsify 主题8.3 鉴权和访问控制 🎉如何将 Docsify 项目部署到 CentOS …

java“俄罗斯方块”

首先新建议一个包为Tetris (俄罗斯方块) 类名也叫做Tetris; 代码运行: package Tetris; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.KeyEvent; import java.aw…

高性能音乐流媒体服务Diosic

什么是 Diosic ? Diosic 是一个开源的基于网络的音乐收集服务器和流媒体。主要适合需要部署在硬件规格不高的服务器上的用户。Diosic 是使用 Rust 开发的,具有低内存使用率和高性能以及用于流媒体音乐的非常干净的界面。 安装 在群晖上以 Docker 方式安装。 在注…

C/C++高频面经-秋招篇

自己在秋招找工作过程中遇到的一些C/C面试题,大中小厂都有,分享出来,希望能帮到有缘人。 C语言 snprintf()的使用 函数原型为int snprintf(char *str, size_t size, const char *format, …) 两点注意: (1) 如果格式化后的字符…

Mac安装win程序另一个方案

前言 今天跟大家分享的是mac装win程序的另一个思路,不需要大动干戈的装双系统、虚拟机。最后分享感受,先说过程吧。 一、思路介绍 其实,就是利用CrossOver,这个软件的介绍大家可以自行了解。不过不得不说这玩意还是国外的人思路新…

vmware17 虚拟机拷贝、备份、复制使用

查看新安装的虚拟机位置 跳转到上一级目录 复制虚拟机 复制虚拟机整个目录 删除lck文件,不然开机的时候会报错 用vmware 打开新复制的虚拟机 lck文件全部删除 点击开机 开机成功

Python接口自动化(什么是接口、接口优势、类型)

简介 经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下…

各类好玩免费API推荐,早知道就不用到处爬数据了...

啥是API/接口? 使用方法 API平台 淘宝/京东API接口数据 一些好玩的api 地图接口 天气查询接口 快递查询接口 笔记接口 其它接口 小结 啥是API/接口? 有些读者刚开始学习编程遇到API或者接口不太明白到底什么意思,没关系&#xff0…

unity 烘焙的时候出现模型没有光影的情况

unity 烘焙的时候出现模型没有光影的情况 1.模型没有设置生成光照贴图 需要勾选模型的生成光照贴图UVs,然后应用 2.游戏对象没有勾选静态选项 点开静态下拉列表,选择 contribute GI