4. 操作列表
操作列表
遍历整个列表
for循环打印所有元素:
for bicyle in bicyles:
print(bicyle)
for循环中,可对每个元素执行任何操作:
for bicyle in bicyles:
print(bicyle.title() + ", this is mine")
for循环中,想包含多少行代码都可以,在for bicyle in bicyles后面,每个缩进的代码都是循环的一部分,且将针对列表中的每个值都执行一次
for循环结束后执行一些操作。没有缩进的代码都只执行一次,而不会重复执行:
bicyles = ['trek', 'cannondale', 'redline', 'specialized']
for bicyle in bicyles:
print(bicyle.title() + ", this is mine")
print('Thank you')
避免缩进错误
忘记缩进
忘记缩进额外的代码行
不必要的缩进
循环后不必要的缩进
遗漏了冒号
创建数值列表
函数range():从指定的第一个值开始,并在到达指定的第二个值停止
for value in range(1,5):
print(value)
#结果
1
2
3
4
使用list()创建数字列表:
numbers = list(range(1,6))
print(numbers)
#结果
[1,2,3,4,5]
range()可以指定步长
numbers = list(range(2,11,2))
print(numbers)
#结果
[2,4,6,8,10]
对数字列表执行简单的统计计算
numbers = [2,4,6,8,10]
min(numbers)
max(numbers)
sum(numbers)
列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素
squares = [value**2 for value in range(1,11)]
#结果
[1,4,9,16,25,36,49,64,81,100]
使用列表的一部分
切片
bicyles = ['trek', 'cannondale', 'redline', 'specialized', 'lu']
print(bicyles[1:3])
#结果
['cannondale', 'redline']
print(bicyles[:3]) #没有指定第一个索引,自动从列表开头开始
#结果
['trek', 'cannondale', 'redline']
print(bicyles[3:]) #没有指定第二个索引,自动从列表末尾结束
#结果
['specialized', 'lu']
print(bicyles[-3:]) #负数索引返回离列表末尾相应距离的元素
#结果
['redline', 'specialized', 'lu']
遍历切片
bicyles = ['trek', 'cannondale', 'redline', 'specialized', 'lu']
for bicyle in bicyles[:3]:
print(bicyle.title())
复制列表
bicyles = ['trek', 'cannondale', 'redline', 'specialized', 'lu']
my_bicyles=bicyles[:] #包含整个列表的切片
print(my_bicyles)
#结果
['trek', 'cannondale', 'redline', 'specialized', 'lu']
不使用切片时复制列表
my_foods = ['pizza', 'falafel', 'carrot cake']
#这行不通
frind_foods = my_foods #frind_foods关联到包含my_foods的列表,两个变量指向的是同一个列表
my_foods.append('cannoli')
frind_foods.append('ice cream')
print(my_foods)
print(frind_foods)
#结果
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
元组
列表非常适合用于存储在程序运行期间可能变化的数据集。
Python将不能修改的值称为不可变的,将不可变的列表称为元组。
元组定义
dimensions = (200,50)
print(dimensions[1])
#结果
200
50
遍历元组中的所有值
dimensions = (200,50)
for dimension in dimensions:
print(dimension)
修改元组变量
不能修改元组的元素,但可以给存储元组的变量赋值
dimensions = (200,50)
for dimension in dimensions:
print(dimension)
dimensions = (400,100) #重新定义整个元组
for dimension in dimensions:
print(dimension)