python操作列表元素(二)

python操作列表元素(二)
python操作列表元素(二)

上文python操作列表元素(一),详细介绍了在for循环执行更多的操作、在循环结束后再执行一些操作以及避免缩进。本文继续讲解python操作列表元素。

一、创建数值列表

要存储一组数的原因有很多,在数据可视化中,处理的几乎是由数(如温度、距离、人口数量、经度和纬度)组成的集合。

列表非常适合用于存储数字的集合,而Python提供了很多工具,可以帮助你提高数据列表。

1.使用函数range()

python函数range()让你能够轻松地生成一系列数,使用range()函数打印一系列数。

具体代码,如下所示:

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

在这个示例中,range ()函数只打印数1-4,这是编程语言中差一行的结果。函数range()让Python从指定的第一个值开始,并到达你指定的第二个数停止。因为它在第二个值处停止,所以输出不包含该值。

要打印数1-5,需要使用range(1, 6)

for value in range(1, 6):
print(value)

2.使用range()函数创建数字列表

要创建数字列表,可以使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将是一个数字列表。

具体代码,如下所示:

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

运行结果,如下所示:

[1, 2, 3, 4]

使用range()函数时,还可以指定步长。为此,可以给这个函数指定三个参数,Python将根据这个步长来生成数。

numbers = list(range(2, 11, 2))
print(numbers)

运行结果,如下所示:

[2, 4, 6, 8, 10]

使用range()几乎可以创建任何需要的数集。例如,创建一个列表,其中包含前10个整数(1-10)的平方?在Python中,用两个(**)表示乘方运算。

具体代码,如下所示:

squares = []for value in range(1, 11):
square = value ** 2
squares.append(square)
print(squares)

这段代码,首先创建一个空的列表,接下来使用range()函数,让Python遍历1-11的值。在循环中,计算当前值的平方,并将结果赋值给变量square,然后将计算得到的平方值,附加到列表squares中。

当然,上面的代码也可以这样写:

squares = []for value in range(1, 11):	# square = value ** 2
squares.append(value ** 2)
print(squares)

运行结果,如下所示:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

运行上面的两段代码,你会发现它们的运行结果是相同的。

3.对数字列表执行简单的统计计算

有几个专门处理数字列表的函数。例如,你可以轻松的找出数字列表的最大值、最小值和总和。

具体代码,如下所示:

digits = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
min_digit = min(digits)
max_digit = max(digits)
sum_digit = sum(digits)
print('min_digit:',min_digit, '\nmax_digit:',max_digit, '\nsum_digit:',sum_digit)

运行结果,如下所示:

min_digit: 1
max_digit: 100
sum_digit: 385

min()函数:返回列表的最小值

max()函数:返回列表的最大值

sum()函数:返回列表的总和

二、使用列表的一部分

要处理列表的所有元素,可以使用for循环可以轻松解决。当然我们也可以处理列表的部分元素,Python称之为切片。

1.切片

要创建切片,可以指定第一个元素和最后一个元素的索引。与函数range()一样,Python到达第二个索引之前的元素就会停止。要输出列表中的前三个元素,只需要指定索引0和索引3,这样返回的元素有索引0、1和2

具体代码,如下所示:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])

运行结果,如下所示:

['charles', 'martina', 'michael']

注意:

如果没有指定第一个索引,Python将自动从列表的开头开始

如果没有指定最后一个索引,Python将自动取到列表的末尾

具体代码,如下所示:

player = ['charles', 'martina', 'michael', 'florence', 'eli']
print(player[:3])
print(player[2:])

运行结果,如下所示:

['charles', 'martina', 'michael']
['michael', 'florence', 'eli']

2.复制列表

我们经常需要根据既有的列表创建全新的列表。下面来介绍一下复制列表的工作原理。

要复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终于最后一个元素的切片,即整个列表的副本。

具体代码,如下所示:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
print(my_foods)
print(friend_foods)
print("\n my friend's favorite foods are:")
print(friend_foods)

首先创建了一个食品列表,名为my_food。然后创建一个名为friend_foods的新列表。在不指定任何索引的情况下,从列表my_foods中提取切片,从而创建这个列表的副本,并副本赋给变量friend_foods。

运行结果,如下所示:

['pizza', 'falafel', 'carrot cake']
['pizza', 'falafel', 'carrot cake']
 my friend's favorite foods are:
['pizza', 'falafel', 'carrot cake']

从上面的运行结果可以看出,两个列表打印的内容是相同的。

为了核实有两个列表,下面在每个列表中都添加一种食品。

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)

运行结果,如下所示:

['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']

你会看到两个列表分别被添加了一种食品。

因此,很明确,这就是两个不同的列表。

如果只是将my_foods赋值给friend_foods,就不能得到两个列表。

具体代码,如下所示:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)

运行结果,如下所示:

['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

通过以上代码,您可以看到,实际上我为两个列表分别添加了一个元素,但打印出来的结果是两个列表都添加了两个元素。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注