Python 一维列表基础语法
【Python】【基础语法】【列表】
- 引子
- 创建一个列表
- 获取数据的类型
- 输出列表
- 获取列表的长度
- 获取元素的值
- 获取元素的索引
- 遍历列表
- 练习
引子
列表(list)是python的基本数据类型之一。一维列表,常常被简称为列表,亦称为向量(vector)。
六大基本数据类型 | |
数字型 | |
字符串 | str |
列表 | list |
元组 | tuple |
字典 | dict |
集合 | set |
创建一个列表
# 创建一个变量,命名为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=0∑n−1ai,n为列表元素的个数,ai表示列表a中第i个元素