文章目录
操作列表
1、遍历整个列表
遍历列表的所有元素,对每个元素执行相同的操作。使用for循环来进行遍历:
animals = ['cat', 'dog', 'pig', 'panda']
for animal in animals:
print(animal)
首先定义一个列表animals,然后定义for循环语句,这行代码从列表中取出一个元素,并存储在变量animal中,然后打印出来,列表多长,就会循环多少次,对于每个元素都会打印出来,输出如下:
cat
dog
pig
panda
在for循环后面想要包含多少行都行,在for语句后面,每个缩进的代码行都是循环的一部分。
animals = ['cat', 'dog', 'pig']
for animal in animals:
print(animal)
print("循环")
print('-----------------------')
for animal in animals:
print(animal)
print("循环")
通过对比这里的两个for循环的输出结果,可知道第一个for循环的循环体包括打印“循环”,第二个不包括。输出如下:
cat
循环
dog
循环
pig
循环
-----------------------
cat
dog
pig
循环
2、创建数值列表
2.1、range()函数
Python的range()函数能够轻松的生成一系列数字。
for value in range(1, 5):
print(value)
上述代码打印的是1~4,因为range()函数是从第一个参数开始到第二个参数结束,因此不包含5
1
2
3
4
2.2、使用range()函数创建数字列表
要创建数字列表,可使用函数list()将range()的结果直接转换为列表。如果将range()作为list()的参数,输出将为一个数字列表。而且range()函数还可以指定步长,步长由第三个参数表示。
number1 = list(range(1, 5))
print(number1)
number2 = list(range(1, 5, 2))
print(number2)
结果如下:
[1, 2, 3, 4]
[1, 3]
2.3、对数字列表统计计算
有几个专门用于处理数字列表的Python函数。例如最大值最小值和总和:
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(max(digits))
print(min(digits))
print(sum(digits))
max()函数得到的是最大值9,min()函数得到的是最小值0,sum()函数得到的是总和。
9
0
45
2.4、列表解析
列表解析让你只需编写一行代码就能生成这样的列表。列表解析将for 循环和创建新元素的代码合并成一行,并自动附加新元素。
squares = [value**2 for value in range(1, 10)]
print(squares)
这种语法,首先使用一个列表名,如squares,然后指一个表达式,如value**2计算平方值,接下来编一个for循环,上述的代码中for循环将1~9提供给表达式。输出如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
3、切片
3.1、创建切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样,Python在到达你指定的第二个索引前面的元素后停止。
balls = ['basketball', 'football', 'badminton', 'tennis']
print(balls[1:3]) # 切片从第2个元素到第3个元素(即索引1到索引2的切片)
print(balls[:3]) # 切片从第1个元素到第3个元素
print(balls[1:]) # 切片从第2个元素到最后1个元素
print(balls[-3:3]) # 切片从倒数第3个元素到第3个元素
如果你没有指定第一个索引,Python将自动从列表开头开始。要让切片终止于列表末尾,也可不指定第二个索引。这些同样可以使用负数索引。
['football', 'badminton']
['basketball', 'football', 'badminton']
['football', 'badminton', 'tennis']
['football', 'badminton']
3.2、遍历切片
如果要遍历列表的部分元素,可在for 循环中使用切片。
balls = ['basketball', 'football', 'badminton', 'tennis']
for ball in balls[1:3]: # 遍历从第2个元素到第3个元素(即索引1到索引2的切片)
print(ball)
上述代码遍历了第2个到第3个元素
football
badminton
3.3、复制列表
要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表。
my_fruits = ['apple', 'banana']
your_fruits = my_fruits[:]
my_fruits.append('peach')
print(my_fruits)
your_fruits.append('pear')
print(your_fruits)
my_fruits添加了一个元素“peach”,your_fruits添加了一个元素“pear”,由结果可以看出,your_fruits是my_fruits的一个副本,两个列表分别拥有各自的存储空间。
['apple', 'banana', 'peach']
['apple', 'banana', 'pear']
若是仅仅只将my_fruits赋值给your_fruits,则不能得到两个列表,如下:
my_fruits = ['apple', 'banana']
your_fruits = my_fruits
my_fruits.append('peach')
print(my_fruits)
print(your_fruits)
赋值后,my_fruits添加元素“peach”,your_fruits也变化了,赋值使my_fruits和your_fruits同时指向一个存储空间,两个列表中一个发生变化,另一个也会跟着变化。
['apple', 'banana', 'peach']
['apple', 'banana', 'peach']
4、元组
列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,然而,有时候你需要创建一系列不可修改的元素,元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。
dimensions = (20, 50)
print(dimensions[0])
print(dimensions[1])
print('-----------------\n for循环输出')
for dimension in dimensions:
print(dimension)
dimensions = (10, 5)
print('-----------------\n 重新定义元组')
print(dimensions[0])
print(dimensions[1])
元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。像列表一样,也可以使用for 循环来遍历元组中的所有值。虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组
20
50
-----------------
for循环输出
20
50
-----------------
重新定义元组
10
5