如何高效地处理列表中的元素;如何使用for 循环遍历列表,Python如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的 数字列表,以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表。元组(它对不应变化的值提供了一定程度的保护),以及在代码变得 越来越复杂时如何设置格式,使其易于阅读。
#! /usr/bin/env python
# -*- coding:utf-8 -*-
'''
@Author:gcan
@Email:1528667112@qq.com
@Site:http://www.gcan.top
@File:list.py
@Software:PyCharm
@Date:2018-04-12 20:58:17
@Version:1.0.0
'''
# 遍历整个列表
# 你经常需要遍历列表的所有元素,对每个元素执行相同的操作。
# for循环
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
# 写程序时要注意缩进和不要少写了冒号
# 创建数值列表
# 使用函数range()
# Python函数range() 让你能够轻松地生成一系列的数字。例如,可以像下面这样使用函数range() 来打印一系列的数字:
for value in range(1,5):
print(value)
# 使用range() 创建数字列表
# 要创建数字列表,可使用函数list() 将range() 的结果直接转换为列表。如果将range() 作为list() 的参数,输出将为一个数字列表。
numbers = list(range(1,6))
print(numbers)
# 使用函数range() 时,还可指定步长。例如,下面的代码打印1~10内的偶数:
even_numbers = list(range(2,11,2))
print(even_numbers)
# 如何将前10个整数的平方加入到一个列表中
squares = []
for value in range(1,11):
square = value**2
squares.append(square)
print(squares)
# 对数字列表执行简单的统计计算
# 有几个专门用于处理数字列表的Python函数。例如,你可以轻松地找出数字列表的最大值、最小值和总和:
print(min(squares))
print(max(squares))
print(sum(squares))
# 列表解析
squares = [value**2 for value in range(1,11)]
print(squares)
# 要使用这种语法,首先指定一个描述性的列表名,如squares ;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式 为value**2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,for循环为for value in range(1,11),它将值 1~10提供给表达式value**2 。请注意,这里的for 语句末尾没有冒号。
# 结果与你在前面看到的平方数列表相同
# 使用列表的一部分 切片
# 要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样,Python在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需 要指定索引0~3,这将输出分别为0 、1 和2 的元素。
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
print(players[2:])
# 遍历切片
# 如果要遍历列表的部分元素,可在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())
# 复制列表
# 你经常需要根据既有列表创建全新的列表。下面来介绍复制列表的工作原理,以及复制列表可提供极大帮助的一种情形。
# 要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:] )。这让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)
# 使用切片赋值的新变量,改变元素,另一个不会跟着一起改变,如果是直接把变量赋值给新变量(列表),新添加元素,另一个列表也一起变化
# 元组
# 列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修
# 改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组 。
# 定义元组
# 元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
# 例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它们是不能修改的:
dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])
dimensions = (200, 50)
# dimensions[0] = 250
# TypeError: 'tuple' object does not support item assignment
# 试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值:
# 遍历元组中的所有值
# 像列表一样,也可以使用for 循环来遍历元组中的所有值:
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
# 修改元组变量
# 虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:
dimensions = (200, 50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions = (400, 100)
print("\nModified dimensions:")
for dimension in dimensions:
print(dimension)
# 相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。
# 代码审核 根据PEP 8指南对它们进行修改
# 每级缩进都使用四个空格。对你使用的文本编辑器进行设置,使其在你按Tab键时都插入四个空格;如果你还没有这样做,现在就去做吧(有关如何设置,请参 阅附录B)。
# 每行都不要超过80字符。对你使用的编辑器进行设置,使其在第80个字符处显示一条垂直参考线。
# 不要在程序文件中过多地使用空行
网友评论