我们在上一篇博客中已经知道如何访问列表的元素,现在我们可以了解到如何遍历列表等一些操作列表的操作
1. 列表的遍历
使用for循环遍历列表
names = ["小梦","小黑","小白","小欧"] for name in names : print(name+", 有10000万????")
输出
小梦, 有10000万????
小黑, 有10000万????
小白, 有10000万????
小欧, 有10000万????
这样遍历可以遍历成千上万的元素。在代码上作出这样的添加就会输出不同的效果
names = ["小梦","小黑","小白","小欧"] for name in names : print(name+", 有10000万????") print("不是吧??") print("小梦有!!!")
输出:
这样的结果是由于代码缩进原因。
当我们在不该缩进的地方缩进
eg
运行会有这样的报错
File "C:/Users/20253/PycharmProjects/myPython/liebiao.py", line 2
for name in names :
^
IndentationError: unexpected indent ===== 缩进错误:意外缩进
当我们在需要缩进的时候没有缩进
就会有这样的报错
File "C:/Users/20253/PycharmProjects/myPython/liebiao.py", line 3
print(name+", 有10000万????")
^
IndentationError: expected an indented block ====缩进错误:需要缩进块
2. 创建数值列表
2.1 使用range()打印出数字1-4
for value range(1,5) : print(value)
输出:
1
2
3
4
2.2 使用range()创建数字列表
可以使用list()函数将range()的结果转为列表
将range()作为list()的参数
numbers = list(range(1,5))
print (numbers)
输出
[1, 2, 3, 4]
代码打印 1-10 的偶数
numbers = list(range(2,11,2)) print (numbers)
在这个示例中,函数range()从2开始数,然后不断地加2,直到达到或超过终值(11),因此
输出
[2, 4, 6, 8, 10]
将1-10的平方添加到一个列表中
squares = [] for value in range(1,11) : result = value ** 2 squares.append(result) print(squares)
输出
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
squares = [] for value in range(1,11) : squares.append( value ** 2) print(squares)
也可以这样 使代码变得简洁
对数字列表执行简单的统计计算
轻松的找出列表中的最大值 最小值 总和
number = [1,2,3,4,5,6,7,8,9,10] print(sum(number)) print(min(number)) print(max(number))
输出
55
1
10
列表解析
前面介绍的生成列表squares的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
squares2 = [value**2 for value in range(1,11)] print(squares2)
要使用这种语法,首先指定一个描述性的列表名,如squares2;然后,指定一个左方括号,
并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value**2,它计
算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,
for循环为for value in range(1,11),它将值1~10提供给表达式value**2。请注意,这里的for
语句末尾没有冒号。
结果与前面看到的平方数列表相同:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
3. 使用列表的一部分
处理列表的部分元素——Python称之为切片
3.1 切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python
在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,
这将输出分别为0、1和2的元素。
下面的示例处理的是一个运动队成员列表:
players = ['charles', 'martina', 'michael', 'florence', 'eli'] print(players[0:3])
输出
['charles', 'martina', 'michael']
代码打印该列表的一个切片,其中只包含三名队员。输出也是一个列表,其中包含前
三名队员
如果没有指定开始的索引 那么Python自动从列表开头开始
print(players[:2])
输出
['charles', 'martina']
如果想让切片截取到列表的末尾,就省略终止索引
print(players[2:])
输出
['michael', 'florence', 'eli']
如果你要输出名单上的最后两名队员,可使用切片players[-2:]
输出
['florence', 'eli']
3.2 遍历切片
遍历名单前三位队员
for value in players[:3] : print(value.title())
输出
Charles
Martina
Michael
3.3 复制列表
有时候我们需要将列表的全部元素复制到另一个列表中。例如我喜欢吃的零食我闺蜜都喜欢吃。
my_foods = ["可乐","蛋糕","薯条","奶茶","炸鸡"] print("I like :") print(my_foods) friend_foods = my_foods[:] print("friend like :") print(friend_foods)
输出
I like :
['可乐', '蛋糕', '薯条', '奶茶', '炸鸡']
friend like :
['可乐', '蛋糕', '薯条', '奶茶', '炸鸡']
4. 元组
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网
站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素,
元组可以满足这种需求。
4.1 Python将不能修改的值称为不可变的,而不可变的列表被称为元组 。
元组看起来就像列表 但是元组使用小括号()而不是方括号来标识。定义完元组之后就可以使用索引来访问元组,就像访问列表一样
定义一个长度不会改变的矩形,可以将其长宽保存到元组中,从而确保他们是不可修改的
dimensions = (200,90) print(dimensions[0]) print(dimensions[1])
输出
200
90
尝试改变矩形长度的值
dimensions[0]=250
运行报错
200
90
Traceback (most recent call last):
File "C:/Users/20253/PycharmProjects/myPython/dimensions.py", line 5, in <module>
dimensions[0] =250
TypeError: 'tuple' object does not support item assignment ==类型错误:“tuple”对象不支持项分配
代码试图修改矩形的尺寸时,Python报告错误
4.2 遍历元组的所有值
dimensions = (200,90) for value in dimensions : print(value)
输出
200
90
4.3 修改元组变量
虽然不能修改元组的元素,但是可以给存储元组的变量赋值。
dimensions = (200,90) print("Original dimensions:") for dimension in dimensions: print(dimension) dimensions = (400, 100) print(" Modified dimensions:") for dimension in dimensions: print(dimension)
我们首先定义了一个元组,并将其存储的尺寸打印了出来 ;接下来,将一个新元组
存储到变量dimensions中;然后,打印新的尺寸 。这次,Python不会报告任何错
误,因为给元组变量赋值是合法的。
输出
Original dimensions:
23
10
Modified dimensions:
400
100