操作列表(创建、遍历、统计、解析、切片、复制)

本文介绍了Python中列表的遍历、缩进错误及其类型,以及如何创建和操作数值列表,包括使用`range()`函数、列表解析和统计计算。此外,还探讨了列表切片、复制以及元组的定义、遍历和其不可变性。通过实例展示了如何避免常见的编程错误,并提供了关于不可变列表——元组的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本章中,你将学习:如何高效地处理列表中的元素;如何使用for循环遍历列表,Python 如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的数字列表, 以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表。你还会学习 元组(它对不应变化的值提供了一定程度的保护)。

4.1 遍历整个列表

list = ['苹果','香蕉','橘子']
for fruit in list:
    print(fruit)    

终端显示:

>>>
苹果
香蕉
橘子

4.2 避免缩进错误

常见缩进错误:

4.2.1 忘记缩进

IndentationError: expected an indented block

4.2.2 忘记缩进额外的代码行

一般情况下属于逻辑错误。从语法上看,这些Python代码是合法的,但由于存在逻辑错误,结果并 不符合预期。如果你预期某项操作将针对每个列表元素都执行一次,但它却只执行了一次,请确定是否需要将一行或多行代码缩进。

4.2.3 不必要的缩进

IndentationError: unexpected indent 

4.2.4 循环后不必要的缩进

如果你不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。 在有些情况下,这可能导致Python报告语法错误,但在大多数情况下,这只会导致逻辑错误。

4.2.5 遗漏了冒号

这种错误虽然易于消除,但并不那么容易发现。程序员为找出这样的单字符错误,花费的时间多得 令人惊讶。这样的错误之所以难以发现,是因为通常在我们的意料之外。

4.3 创建数值列表

4.3.1 使用函数 range()

取值原则:取左不取右,也就是数学上的左闭右开区间。

for value in range(1,5): 
    print(value) 
>>>
1
2
3
4

4.3.2 使用 range()创建数字列表

num = list(range(1,4)) 
print(numbers) 


>>>
[1, 2, 3] 

使用函数range()时,还可指定步长。例如,下面的代码打印1~10内的偶数:

num = list(range(2,11,2)) 
print(even_numbers) 


>>>
[2, 4, 6, 8, 10] 

在Python中,两个星号(**)表示乘方运算。下面的代码演示了 如何将前10个整数的平方加入到一个列表中:

list = []
for value in range(1,11):
    list.append(value**2)
    print(list)


>>>
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

4.3.3 对数字列表执行简单的统计计算

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(list) 0 
max(list) 9 
sum(digits)  45

4.3.4 列表解析

list = [value for value in range(1,11)]

要使用这种语法,首先指定一个描述性的列表名,如list;然后,指定一个左方括号, 并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value**2,它计 算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中, for循环为for value in range(1,11),它将值1~10提供给表达式value**2。

请注意,这里的for 语句末尾没有冒号。

4.4 使用列表的一部分

4.4.1 切片

4.4.2 遍历切片

list = [value**3 for value in range(1,11)]


#打印前两位数
print('The first two items in the list are')
for value in list[:2]:
    print(value)
#打印中间三位数
print('Three items from middle list are.')
for item in list[4:7]:
    print(item)
#打印后四位数
print('The last four items from middle list are.')
for items in list[-4:]:
    print(items)


>>>
The first two items in the list are
1
8
216
343
The last four items from middle list are.
1
8
27
64
125
216

4.4.3 复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。

list = ['苹果','香蕉','橘子']
copy_list = list[:]     ①
list.append('梨')
copy_list.append('柚子')
print(list)
print(copy_list)
>>>
['苹果', '香蕉', '橘子', '梨']
['苹果', '香蕉', '橘子', '柚子']

之所以在①处没有直接用 copy_list = list,是因为那只是简单地将 my_foods赋给friend_foods,就不能得到两个列表。

list = ['苹果','香蕉','橘子']
copy_list = list     
list.append('梨')
copy_list.append('柚子')
print(list)
print(copy_list)
>>>
['苹果', '香蕉', '橘子', '梨','柚子']
['苹果', '香蕉', '橘子', '梨','柚子']

这种语法实际上是让Python将新变量copy_list关联到包含在list中的列表,因此这两个变量都指向同一个列表。鉴于此,当我们'梨'添加到list中时,它也将出现在copy_list中;同样,虽然'柚子'好像只被加入到了copy_list中,但它也将出现在这 两个列表中。

4.5 元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网 站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素, 元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

4.5.1 定义元组

tuple = ('刀削面','炸酱面','热干面')

4.5.2 遍历元组中的所有值

tuple = ('刀削面','炸酱面','热干面')
for food in tuple:
    print(food) 


>>>
刀削面
炸酱面
热干面

4.5.3 修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺 寸,可重新定义整个元组:

dimensions = (200, 50)
print("Original dimensions:") 
for dimension in dimensions: 
    print(dimension) 
dimensions = (400, 100) 
print("\nModified dimensions:") 
for dimension in dimensions: 
     print(dimension)


>>>
Original dimensions:
200
50


Modified dimensions:
400
100  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值