Python入门实践(四)——操作列表

操作列表

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值