欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第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)