当前位置: 首页 > article >正文

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.kler.cn/a/379618.html

相关文章:

  • 【React】初学React
  • 代码随想录第十五天| 110.平衡二叉树 、 257. 二叉树的所有路径 、404.左叶子之和、222.完全二叉树的节点个数
  • 非线性数据结构之图
  • 『YOLO』| 断点训练、解决训练中断异常情况
  • 项目解决方案:跨不同的物理网络实现视频监控多画面的实时视频的顺畅访问
  • 如何在 Ubuntu 上安装和配置 GitLab
  • LM Head weights;ChatGPT-3词汇量:175,000;llama7b 词汇量,词嵌入维度:4096
  • 【LeetCode】移除链表中等于设定值的元素、反转链表
  • 创维E900-S_华为EC6108V9_v9u_海思hi3798mv100华为系统优盘刷机固件包
  • CesiumJS 案例 P20:监听鼠标滚轮、监听鼠标左键按下与松开、监听鼠标右键按下与松开、监听鼠标左击落点
  • Linux:线程安全的单例模式
  • 进程的概念
  • Vue学习之路16----pinia
  • 家具产品的耐用性新标准,矫平机为家具制造提供新保障
  • SQL中`ORDER BY`、`SORT BY`、`DISTRIBUTE BY`、`GROUP BY`、`CLUSTER BY`的区别详解
  • 什么是严肃游戏,严肃游戏本地化的特点是什么?
  • 【C语言刷力扣】3216.交换后字典序最小的字符串
  • 第十五章 Vue工程化开发及Vue CLI脚手架
  • 贪心算法理论基础和习题【算法学习day.17】
  • Python代码解析:问题分类器实现
  • el-table type=“selection“换页多选数据丢失的解决办法
  • dify实战案例分享-基于多模态模型的发票识别
  • git submodule
  • 【AIGC】深入探索『后退一步』提示技巧:激发ChatGPT的智慧潜力
  • 【jvm】对象分配过程
  • PostgreSQL JOIN 操作深入解析