第4章 操作列表
程序员文章站
2022-05-07 12:08:36
...
1 循环概述
循环能够对列表的每个元素都采取一个或一系列相同的措施,高效处理任何长度的列表。
- 循环让计算机自动完成重复工作。
- 每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。因此,我们可对列表中的每个值执行任意次数的操作。
- for循环结束后,我们需要提供总结性输出或者接着执行程序必须要完成的其他任务。
- 在for循环后**,没有缩进的代码都只执行一次,而不会重复执行**。
- Python根据缩进来判断代码行和前一个代码行的关系。
2 编写循环时常见的错误
- 忘记缩进:对于for语句后面且属于循环组成部分的代码行,没有缩进。
- 逻辑错误:从语法上看,程序员书写的代码是合法的,但是由于存在逻辑错误,所得到的的结果并不符合预期。
- 不必要的缩进。
- 遗漏冒号。
3 数值列表
列表非常适合存储数字集合。
3.1 方法range()
- range()能够生成一系列数字。
- 可以使用方法list()将range()的结果直接转化为列表。
- range()几乎能够创建任何需要的数字集。
- range()可以指定步长。
4 对数字列表执行简单的统计计算
4.1 方法min()
min()找出数字列表中的最小值。
4.2 方法max()
max()找出数字列表中的最大值。
4.3 方法sum()
sum()算出数字列表中的总和。
5 列表解析
- 列表解析让我们只编写一行代码就能生成列表。
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
- 步骤:
1、首先,指定一个描述性的列表名。
2、然后,指定一个左方括号,并定义一个表达式,用于生成我们要存储到列表中的值。
3、接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。
6 使用列表的一部分
6.1 切片
- 列表的部分元素在python中称为切片。
- 要创建切片,可以指定要使用的第一个元素和最后一个元素的索引。
- 未指定第一个索引,Python将自动从列表开头开始。
- 未指定最后一个索引,Python将自动从列表末尾开始。
6.2 复制列表
根据既有列表创建新列表。
我们可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引。这样,python就创建了一个始于第一个元素,终止于最后一个元素的切片。
7 列表小结
列表适合用于存储在程序运行期间可能变化的数据,即列表是可以修改的。
8 元素概述
- 不能修改的值成为不可变的,不可变的列表称为元组,即一系列不可修改的元素。
使用圆括号而不是方括号。
- 定义元组后,我们可以使用索引来访问元素。
- 元组值得元组不可修改,试图修改元组中元素的值,会导致Python返回类型错误消息。
可以给存储元组的变量赋值。
PEP 8(设置代码格式)
Python改进提案(Python Enhancement Proposal, PEP)
动手试一试
4-1 比萨:
pizzas = ['new york style', 'chicago stycle', 'thick style']
for pizza in pizzas:
print(pizza)
print("I like " + pizza.title() + " pizza.\n")
print("I really love pizza!")
4-2 动物:
animals = ['dog', 'cat', 'bird']
for animal in animals:
print(animal)
print(animal.title() + " would make a great pet.\n")
print("Any of these animals would make a great pet!")
4-3 数到20:
for value in range(1, 21):
print(value)
4-4 一百万:
numbers = [value * 1 for value in range(1, 1000001)]
print(numbers)
4-5 计算1~1000000的总和:
numbers = [value * 1 for value in range(1, 1000001)]
print(min(numbers))
print(max(numbers))
print(sum(numbers))
4-6 奇数:
numbers = [value * 1 for value in range(1, 21, 2)]
for number in numbers:
print(number)
4-7 3的倍数:
numbers = []
for value in range(3, 31):
if value % 3 == 0:
numbers.append(value)
for number in numbers:
print(number)
4-8 立方:
numbers = [value ** 3 for value in range(1, 11)]
for number in numbers:
print(number)
4-9 立方解析:
numbers = [value ** 3 for value in range(1, 11)]
for number in numbers:
print(number)
4-10 切片:
numbers = [value ** 3 for value in range(1, 8)]
for number in numbers:
print(number)
print("The first three items in the list are:")
print(numbers[:3])
print("Three items from the middle of the list are:")
print(numbers[2:5])
print("The last three items in the list are:")
print(numbers[-3:])
4-11 你的比萨和我的比萨:
pizzas = ['new york style', 'chicago stycle', 'thick style']
for pizza in pizzas:
print(pizza)
print("I like " + pizza.title() + " pizza.\n")
print("I really love pizza!")
friend_pizzas = pizzas[:]
pizzas.append('pan style')
friend_pizzas.append('seafood style')
print("My friend's favorite pizzasare:")
for pizza in friend_pizzas:
print(pizza)
print("\nMy favorite pizzas are:")
for pizza in pizzas:
print(pizza)
4-12 自助餐:
foods = ('French cuisine', ' today\'s special', 'chef\'s special', 'continental cuisine', 'specialty')
for food in foods:
print(food)
print("")
foods = ('French cuisine', ' today\'s special', 'chef\'s special', 'assorted porridge', 'fast food')
for food in foods:
print(food)