Python3完全新手小白的学习手册 4 操作列表

遍历整个列表

使用for循环遍历列表 for 临时名字 in 列表名:

# magicians.py
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)

终端输出:

alice
david
carolina

定义了一个列表。接下来,定义一个 for 循环。这行代码让 Python 从列表 magicians 中取出一个名字,并将其存储在变量 magician 中。让 Python 打印变量 magician 的值(即魔术师的名字),并对列表中的每个名字都执行这个操作。

输入研究列表

循环很重要,因为它是让计算机自动完成重复工作的常见方式之一。在你编写的大部分循环中,都将使用到 for 循环。

# 这行代码让 Python 获取列表 magicians 中的第一个值 'alice',并将其与变量 magician 相关联。
for magician in magicians:
    # 打印 magician 的值,依然是 'alice'。
    print(magician)
# Python 获取列表中的下一个名字 'david',并将其与变量 magician 相关联,再执行打印
# Python 再次打印变量 magician 的值,当前为 'david'。
# 接下来,Python 再次执行整个循环,对列表中的最后一个值 'carolina' 进行处理。

在 for 循环中执行更多的操作

在 for 循环中,可以对每个元素执行任意操作。

# magicians.py
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    # 为每位魔术师都打印一条以其名字为抬头的消息。
    print(f"{magician.title()}, that was a great trick!")

终端输出:

Alice, that was a great trick!
David, that was a great trick!
Carolina, that was a great trick!

第一次通过循环时,变量 magician 的值为 ‘alice’,因此 Python 打印的第一条消息的抬头为 ‘Alice’;第二次通过循环时,消息的抬头为 ‘David’;第三次通过循环时,抬头为 ‘Carolina’。

创建数值列表

列表非常适合用于存储数值集合,而 Python 提供了很多工具,可帮助你高效地处理数值列表。

使用函数 range()

Python 函数 range() 让你能够轻松地生成一系列的数。

# first_number.py
# 打印 1-4
for value in range(1, 5):
    print(value)

终端输出:

1
2
3
4

range() 函数让 Python 从指定的第一个值开始数,并在到达指定的第二个值时停止。

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

使用 range() 创建数值列表

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

终端输出:

[1, 2, 3, 4, 5]

代码打印 1~10 的偶数

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

终端输出:

[2, 4, 6, 8, 10]

使用 range() 函数几乎能够创建任意数值集合。

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

print(squares)

终端输出:

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

首先,创建一个名为 squares 的空列表。接下来,使用range() 函数让 Python 遍历 1~10 的值。在循环中,计算当前值的平方,并将结果赋给变量 square。

可不使用临时变量 square,而是直接将计算得到的每个值追加到列表末尾。


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

print(squares)

对数值列表执行简单的统计计算

找出数值列表中的最大值、最小值和总和。

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

列表推导式

列表推导式(list comprehension)将 for 循环和创建新元素的代码合并成一行,并自动追加新元素。

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

终端输出:

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

要使用这种语法,首先指定一个描述性的列表名,如 squares。然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。

使用列表的一部分

切片

要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数 range() 一样,Python 在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引 0~3,这将分别提取索引 0、1 和 2 对应的元素。

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

终端输出:

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

输出前三名队员

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

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

终端输出:

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

如果要提取从第三个元素到列表末尾的所有元素,可将起始索引指定为 2。

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

终端输出:

['michael', 'florence', 'eli']

如果要输出名单上最后三名队员的名字,可使用切片 players[-3:]:

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

终端输出:

['michael', 'florence', 'eli']

遍历切片

如果要遍历列表的部分元素,可在 for 循环中使用切片

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

print("Here are the first three players on my team:")
for player in players[:3]:
    print(player.title())

终端输出:

Here are the first three players on my team:
Charles
Martina
Michael

复制列表

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

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]

print("My favorite foods are:")
print(my_foods)

print("\nMy friend's favorite foods are:")
print(friend_foods)

终端输出:

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

元组

有时候需要创建一系列不可修改的元素,元组可满足这种需求。

定义元组

元组看起来很像列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素。

# dimensions.py
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])

终端输出:

200
50

遍历元组中的所有值

像列表一样,也可以使用 for 循环来遍历元组中的所有值。

# dimensions.py
dimensions = (200, 50)
for dimension in dimensions:
    print(dimension)

终端输出:

200
50

修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组。

# dimensions.py
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
    print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
    print(dimension)

终端输出:

Original dimensions:
200
50
Modified dimensions:
400
100

元组变量重新赋值是合法的,因为元组是不可变的。


往期

Python3完全新手小白的学习手册 3 列表

Python3完全新手小白的学习手册 2 变量和简单数据类型

Python3完全新手小白的学习手册 1 Python 的安装


代码仓库

代码仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qyydeep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值