目录

前言

一、为什么要创建数值列表?

二、创建数值列表

1.使用 range()函数

2.使用range()建立列表

3.列表解析

总结

前言

        上文讲到了如何缩进,以及简单的for循环。本文讲将一种较为常见的搭配——利用for in range循环,来建立数值列表。

一、为什么要创建数值列表?


        什么是数值列表?

        通俗来讲,数值列表就是把一堆数值存放在一个列表中,方便后续提取、修改、增删、处理等工作。

        需要存储一组数字的原因有很多,例如,在游戏中,需要跟踪每个角色的位置,还可能需要

跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、

经度和纬度等)组成的集合。

        Python中,一般选用列表来存储这些数值。

二、创建数值列表

1.使用 range()函数

        Python函数 range() 让你能够轻松地生成一系列的数字。例如,可以用下面“for i in range(a,b)”的形式简单打印一系列数字。

for i in range(1,5): 
    print(i)

结果如下:


Python将数据库的某列存入list python如何将数存入列表_后端

可以看出来,range()函数产生了1、2、3、4四个数字,并由print()打印了出来。

函数range()让Python从你指定的第一个值开始取,并在到达你指定的第二个值时停止,注意此时并没有取出第二个值,因此输出不包含第二个值(这里为5)。

range()函数的用法为:

range(a,b,c)
表示:从a开始取,取到b-1,步进为c(步进的用法参考上一节)
这里a、b可以取正数,c只能取非零整数
需要注意的是:Python有点笨!
比如当步进c为正整数时,a必须小于b,否则都是没有意义的语句。
同理当步进c为负整数时,a必须大于b,否则也是无意义的语句。
上述两种,虽无意义,但逻辑上并不会报错。而如果把步进c设置为0,则会报错“ValueError: range() arg 3 must not be zero”


2.使用range()建立列表

        创建列表,首先能想到的是利用上一次课的列表操作——增加元素。

        即通过range循环,每次往列表里塞一个数。

List1=[]
for num in range(1,5):
    List1.append(num)
print(List1)

如上,每次增加一个数,最后使用print()将列表打印出来,结果为[1,2,3,4],也正是我们需要的列表。

        但是这个方法有些笨拙,Python给我们提供了一个更便捷的方法:

List2 = list(range(1, 5))
print(List2)

即,使用“list()”语句,就能直接产生一个列表

两种方法各有好处:

第二种方法方便快捷,一行就能解决问题。

而第一种方法算是一种“通式”,可以应对各种各样的建立列表操作。

比如,我想建立一个列表,这个列表分别装下1到5的平方。

如果使用方法二,则:

L=list([1,4,9,16,25])

(这里其实加不加list()都可以,不加list(),方括号直接赋值也是列表。)

这种方法非常笨拙,因为这是人脑计算以后手动加入,不具备自动运行的能力。而如果用方法一,就会很“自动化”。

L = []
for i in range(1, 6):
    num = i**2
    L.append(num)
print(L)

亦能产生同样结果。

由此,可以形成一种建立数值列表的通法:

①给某个变量赋值一个空列表“[]”;

②启动循环,安排好循环次数;

③通过运算,得到需要放入列表中的元素;

④使用上一节讲的列表操作方法,将元素放进列表中的合适位置;

⑤循环结束,列表建立完成。

3.列表解析

        前面介绍了两种生成列表的方法。第一种方法灵活但是会占较多行,第二种方法比较死板。而列表解析可以做到编写一行代码就能生成这样的列表。 列表解析 将 for 循环和创建新元素的代码合并成一行,并自动附加新元素。

        一般来说,初学者很少会用这种复杂的语句,但是很多程序中会遇到,掌握也算是“迫不得已”。

List3 = [num**2 for num in range(1,6)] 
print(List3)

也能达到相同效果。

要使用这种语法,

        首先给定一个列表名,如List3 ;

        然后,打出一个方括号,方括号里先定义一个表达式,用于生成你要存储到列表中的值。在这个例子中,表达式为num**2,意思是算平方值。也可以写别的计算式,同理。

        接下来,编写一个for循环,用于给表达式提供值。在这个示例中,for循环为 for num in range(1,6) ,它能给表达式num **2提供1到5的基础数值 。

请注意,这里的for 语句末尾没有冒号

总结

        本文介绍了三种生成列表的方法。第一种方法是循环法,这是一种通法,其蕴含的思想不光Python,其他编程语言也完全实用(例如Matlab中就会有很多需要对矩阵进行运算提取添加的数据处理步骤,完全可以采用这种思想)。第二种方法是使用list()语句,直接将range()产生的数放进列表。但是这样就失去了灵活性。第三种方法又被称为列表的解析,它不光能降低代码的复杂程度,也能有一定的灵活性。至于选择哪个,那当然是视情况而定了。