Python 一维列表基础语法

【Python】【基础语法】【列表】

  • 引子
  • 创建一个列表
  • 获取数据的类型
  • 输出列表
  • 获取列表的长度
  • 获取元素的值
  • 获取元素的索引
  • 遍历列表
  • 练习

引子

列表(list)是python的基本数据类型之一。一维列表,常常被简称为列表,亦称为向量(vector)。

六大基本数据类型
数字型
字符串str
列表list
元组tuple
字典dict
集合set
列表由元素(element)组成,而元素由元素的值(value)和元素的索引(index)构成。

创建一个列表

# 创建一个变量,命名为a_list(一个列表),数据类型为list型,赋值为[19, 29, 20, 24, 11, 2]
a_list = [19, 29, 20, 24, 11, 2]

假设我们的读者已经有了对于变量的基本概念,观察这行代码。我们不难发现a_list是一个变量,而a_list = [19, 20, 24, 11, 2]是一个赋值语句。因为它符合变量 = 值的语法格式嘛,这是显而易见的。我们说,python是动态类型语言,即变量的数据类型由其值的数据类型决定。变量的类型不是显式的。
我们现在通过下面几行代码,回顾一下之前常见的一些数据类型,来看看我们是如何通过值来判断变量的数据类型的:

a = 2024  # 2024是一个整数,所以变量a是整数型(int型)的
b = 19.42  # 19.42是一个小数(浮点数),所以变量b是浮点型(float型)的
c = True  # True是一个逻辑值,所以变量c是布尔型(bool型)的
d = 'Saturday'  # 'Saturday是一个字符串,所以变量d是字符串型(str型)的

简单概括一下,小数点.是浮点数的标志,引号是字符串的标志。

  • 引号
    • 单引号 ''
    • 双引号""
    • 三引号
      • 三对单引号''' '''
      • 三对双引号""" """

那么自然而然地,列表的标志是什么呢?在python中列表的标志被规定为方括号(中括号)[]。有的聪明的读者可能要说:“嗯,我们因为被你事先告知了a_list = [19, 29, 20, 24, 11, 2]是在创建一个列表,所以得知[]是列表的标志。但是如果你啥也不事先告诉我们,我们该如何知道呢?”

获取数据的类型

是的,在未被告知结果时,我们该如何总结出知识来呢?这里和大家分享一个函数用于获取数据的类型

type(a_list)  # 获取变量a_list的数据类型

type的中文意思,即为“类型”。有了type()函数,你将可以“一招鲜吃遍天”,获取任何数据的类型啦😁。

输出列表

print(a_list)

不管a_list是什么数据类型,它首先是一个变量,凡是变量都可以使用print()函数在控制台输出,不过不敢保证下一次会在控制台上释放出什么“妖魔鬼怪”。好奇的朋友可以试试运行下面的代码块:

import pygame
pygame.init()
variable = pygame.event.get()
print(variable)

话说回来,运行print(a_list)语句,我们将在控制台得到以下内容:

[19, 29, 20, 24, 11, 2]

现在我们可以通过type()函数获得变量a_list数据类型,还可以通过print()函数获得变量a_list。在之前的学习中,这些已经是关于一个变量的全部了。不过,到了列表可就不止这些了。

获取列表的长度

我们说列表由元素组成,那么首先请问列表中有多少个元素,该如何得知呢?对于[19, 29, 20, 24, 11, 2]这个列表,我们单凭肉眼一下子就可以数过来,是6个。但是如果是地球上每个人的身高值组成的一个列表呢?你还想通过肉眼,通过数数,数出来吗?OMG!那也太疯狂了吧!
于是,“既贪婪又懒惰的”程序员们,创造了一个很方便的工具,用于获取列表中元素的个数,并且将“列表中元素的个数”这句拗口的话概括为“列表的长度”。(ps:好家伙,“懒惰的”程序员们,连说话多几个字都嫌麻烦呢,哈哈哈😄)
这个工具就是len()函数——

len(a_list)  # 获取列表a_list的长度

获取元素的值

无论是type(a_list)也好,还是print(a_list),以及len(a_list),都是在围绕列表的宏观层面打转转。我们说列表由元素组成,元素由值和索引构成,那么让我们看看列表的微观层面——元素有哪些好玩的东西吧!
首先,我们可以通过下标访问法获取元素的值:

a_list[0]  # 获取第一个元素的值

索引又称为下标,人们约定俗成地将上面的方法命名为“下标访问法”而不是“索引访问法”大可不必深究。这个方法的语法格式是:list_name[index]
列表中的每一个元素都有其位序,我们将元素的位序称为索引(或下标)。python规定,从左往右数,第一个元素的索引是0(很多语言都这样规定),第二个元素的索引为1,以此类推直到最后一个元素。另外,python还规定,列表从右往左数,第一个元素的索引为-1,第二个元素的索引是-2,以此类推。

获取元素的索引

其次,我们不过可以获取单个元素的值,也可以获取单个元素的索引:

a_list.index(19)  # 获取值为19的元素的索引

这里请注意,index()并不是一个普通的函数,它和type()print()用起来不一样。它需要点调用.。我们一般称这样的“函数”为方法。(方法是类与对象中的概念,后面的博客会有介绍,与它并行的概念还有一个是属性。我们也常将属性-方法,称为特征-行为。用于刻画类与对象。)
然后呢关于列表的索引,还有一个要点要注意,就是,从左往右数最后一个元素的索引等于列表的长度减一

遍历列表

做了以上铺垫之后,最后就来到了列表最重要,最变化无穷、妙趣横生的地方了。

# 使用while循环+下标访问法遍历列表,方法1
index = 0
while index < len(a_list):print(a_list[index])index += 1
# 使用while循环+下标访问法遍历列表,方法2
index = 0
while index <= len(a_list) - 1:print(a_list[index])index += 1
# 使用for循环+下标访问法遍历列表,方法3
for index in range(len(a_list)):print(a_list[index])
# 使用迭代器遍历列表,方法4
for elem in a_list:print(elem)  # elem是element的简写

以上就是本次要给大家分享的乐趣啦。

练习

最后给大家出点有意思的练习题,一方面检查我们理解得是否到位,另一方面加深一下我们的印象吧!答案下期会在练习环节给出:

Question:
计算上例中,列表a_list中所有元素值的平均值
提示:平均值即平均数,其数学公式为:
a v g = ∑ i = 0 n − 1 a i n , n 为列表元素的个数, a i 表示列表 a 中第 i 个元素 avg = \cfrac{\displaystyle\sum_{i=0}^{n-1}a_i}{n}, n为列表元素的个数,a_i表示列表a中第i个元素 avg=ni=0n1ai,n为列表元素的个数,ai表示列表a中第i个元素

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

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

相关文章

针对告警数量、告警位置、告警类型等参数进行统计,并做可视化处理的智慧能源开源了

一、简介 AI视频监控平台, 是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;减少企业级应用约 95%的开发成本&#xff0c;在强大视频算…

【教学类-12-10】20241104《连连看竖版6*6 (3套题目空心图案)中2班

【教学类-12-09】20230228《连连看竖版6*6 &#xff08;3套题目空心图案&#xff08;中班教学&#xff09;》&#xff08;中班主题《玩具总动员》)-CSDN博客文章浏览阅读121次。【教学类-12-09】20230228《连连看竖版6*6 &#xff08;3套题目空心图案&#xff08;中班教学&…

Windows系统使用diskpart命令格式化U盘

Windows系统使用diskpart命令格式化U盘 1、以管理员身份运行CMD命令提示符 2、输入【diskpart】进入diskpart命令行界面 3、输入【list disk】命令&#xff0c;查看本机所有磁盘 4、这里以格式化【磁盘4】为列&#xff0c;输入【select disk 4】命令&#xff0c;选择磁盘4…

Uni商城-开源项目

目录 概述 技术选型 前端 后端 数据库&#xff1a;MongoDB 项目原型图 项目实现效果图 Tabbar页面 微信一键登录 ​编辑加入购物车 ​编辑 首页商品分类过滤 商品搜索 商品下单 收货地址选择/管理&#xff08;内置组件&#xff09; ​编辑 购物车下单 ​编辑 优…

电脑开机显示无信号然后黑屏怎么办?

当我们打开电脑时&#xff0c;遇到电脑屏幕出现了无信号并且黑屏&#xff0c;常常会让我们感到困扰。很多朋友都会遇到显示器无信号的情况&#xff0c;其实这种故障是很好解决的&#xff0c;但是电脑小白&#xff0c;并不知道电脑屏幕显示无信号然后黑屏了要怎么去修复。不用担…

Linux Kernel Programming (个人读书笔记)

目录 Before everything begins 笔者的环境 关于如何在Arch Linux下载Virtual Box 下载一个镜像&#xff0c;然后开启一个简单的虚拟机 在Ubuntu虚拟机下东西 配置我们的内核 啥是KConfig和KBuild? 构建内核配置选择 启动&#xff01;一个好的内核配置的开始 使用分发…

【优先算法】双指针

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;优先算法 个人主页&#xff1a;Celias blog~ 目录 ​​​​​​移动零 复写零 快乐数 盛水最多的容器 …

公务员考试需要注意哪些事项,这里简单的介绍一下

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一下公务员考试需要注意哪些事项。 公务员考试注意事项 公务员考试是许多求职者梦寐以求的职业生涯起点&#xff0c;但要成功通过这场竞争激烈的考试&#xff0c;需要做好充分的准备。以下是一些关键的注意事项&#xff…

[极客大挑战 2019]BabySQL 1

[极客大挑战 2019]BabySQL 1 审题 还是SQL注入和之前的是一个系列的。 知识点 联合注入&#xff0c;双写绕过 解题 输入万能密码 发现回显中没有or&#xff0c;猜测是使用正则过滤了or。 尝试双写绕过 登录成功 使用联合查询&#xff0c;本题中过滤了from&#xff0c;w…

Mac M1以非docker的方式运行 Elasticsearch 8

通过 docker 的方式部署运行 elasticsearch 当然是一个好的选择&#xff0c;当然除了这种方式我们也可以通过直接下载压缩包的方式进行部署运行。 一、访问官方下载压缩包 https://www.elastic.co/downloads/elasticsearch 进入页面后&#xff0c;网页会自动检测OS。 确认无…

Java项目实战II基于Java+Spring Boot+MySQL的体育馆使用预约平台的设计与实现(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着全民健…

【瑞吉外卖】-day03

目录 前言 启动禁用员工账号 消息转换器 1. Jackson (用于JSON) 2. JAXB (用于XML) 3. Gson (用于JSON) 4. MessagePack (用于二进制格式) 页面展示 代码部分 启动禁用员工账号修改&#xff08;个人意见&#xff09; 公共字段自动填充 ThreadLocal简要概述 基本用法…

blender导入的图片渲染看不见,图片预览正常,但渲染不出

在使用Blender时&#xff0c;我们经常会遇到导入图片后在预览渲染中显示&#xff0c;但在实际渲染时图片消失的问题。本文将提供详细的解决方法&#xff0c;帮助大家解决“Blender导入的图片渲染图像不显示”的问题。 问题原因 导入的图片在Blender中只是一张图&#xff0c;并…

本质矩阵分解计算Rt

1 本质矩阵的计算 上一文章中描述了本质矩阵的计算&#xff0c;计算机视觉-对极几何-CSDN博客&#xff0c;那么计算得到本质矩阵有什么用&#xff1f;其中一个应用是通过本质矩阵计算得到2D-2D的相对变换。 在相关矩阵计算时&#xff0c;一般会在两幅图像中&#xff0c;根据特征…

【天线&通讯】电力设施检测系统源码&数据集全套:改进yolo11-RFCAConv

改进yolo11-DAttention等200全套创新点大全&#xff1a;电力设施检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.11.01 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者…

MQTT自动发送消息工具(自动化测试MQTT)

点击下载《MQTT客户端服务端工具》 点击下载《MQTT自动发送消息软件(自动化测试MQTT)》 1. 前言 在软件开发过程中&#xff0c;MQTT常被用作消息队列来完成特定的业务功能。当我们将相关业务代码编写完成后&#xff0c;通常需要编写额外的消息生产和消费代码来模拟消息高峰时…

智慧医疗——提出了一种基于敌对领域适应症预测候选抗癌药物的方法

导言 本方法的研究背景和要点 据估计&#xff0c;未来每两个日本人中就有一人会患上癌症&#xff0c;它是现代人最难以治愈的疾病之一。众所周知&#xff0c;癌症的发生和发展是由于人类和其他动物的细胞生长机制遭到破坏&#xff0c;细胞变成了被称为癌细胞的特殊细胞。 癌…

算法|牛客网华为机试31-40C++

牛客网华为机试 上篇&#xff1a;算法|牛客网华为机试21-30C 文章目录 HJ31 单词倒排HJ32 密码截取HJ33 整数与IP地址间的转换HJ34 图片整理HJ35 蛇形矩阵HJ36 字符串加密HJ37 统计每个月兔子的总数HJ38 求小球落地5次后所经历的路程和第5次反弹的高度HJ39 判断两个IP是否属于同…

C/C++ 随机数生成方法

1. 使用 rand() 和 srand() - 库: <stdlib.h> 或 <cstdlib> - 特点: 伪随机数生成器&#xff0c;简单易用。 - 示例: #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); // 初始化随机数生成器 int random_nu…