文章目录
- 前言
- 一、操作列表
- 1.遍历整个列表(用for循环)
- 2.创建数值列表
- 3.切片
- 4.元组
- 二、例题
- 1.for循环
- 2.读入数据
- 3.切片
- 4.元组
- 总结
前言
上章我们学习了列表以及一些列对列表的操作,但多是一些对列表中元素的增删改查,这一章主要学习对整个列表的一些操作,而不仅局限在一些列表元素中。
本章主要学习了用for遍历整个列表、创建数值列表、切片、元组、以及一些代码的格式。
一、操作列表
1.遍历整个列表(用for循环)
for循环是一种遍历整个列表的语句,for循环有几个注意要点:
1.for循环的基本格式:“for XX in XX(列表名):”,这个结构中第一个XX直接是一个变量,用于承接列表中的元素,随着for循环的不断进行,变量中承接的元素也顺序变化。
2.不要忘记for循环后面的冒号,这是python识别for循环的关键。
3.for循环的作用范围:是从冒号开始,到第一个不缩进的语句。也就是说,要想语句进行for循环,需要在for结构后进行缩进。
2.创建数值列表
列表非常适合储存数字,可以记录物体的位置,每日的天气等等。
range()函数可以打印一串数字,一般需要两个值,一个是数字的起始值,一个是数字的终止值,其中,起始值会被range()输出,但终止值不会,也可以输入第三个值:步距,他可以设置每几个数取一个值,也就是两个输出结果之间的差值。
函数list()将range()函数输出的结果直接转换为列表。
函数min()可以计算数值列表中的最小值
函数max()可以计算数值列表中的最大值
函数sum()可以计算数值列表中的总数
列表解析是一种非常精炼的编程方法,它是在列表中直接写表达式加for循环,其中for循环没有冒号。
3.切片
上一章中我们学习了访问列表中的一个元素,下面我们要学到访问列表中的某一段元素。
跟range()函数一样,切片也是从一个起始值到一个终止值,包含起始值但不包含终止值,但他们也是有差别的,首先,切片的起始值与终止值可以省略,两者之间需要用冒号进行分割,range函数需要用逗号分割。
切片不仅能正向生成,而且能反向生成,反向生成时,也要注意是从更小的数开始的。
复制列表,python的复制列表比较独特,我们不能创立一个新列表,然后将原有的列表赋值给新列表,这样做的话,我们并没有得到两个相同的列表,而是只有一个列表。
倘若想要复制列表,我们可以考虑创建一个列表从头到尾的切片,这个切片就是独立于原列表的新列表,然后将这个切片赋值给新列表即可。
4.元组
列表十分适合于储存在程序运行期间可以改变的数值,但是有时候需要储存一些不可以改变的数据,元组就是这种不可变的列表,它其中的元素值都不可以改变。
元组使用圆括号而不是方括号。
元组虽然是不可改变的,它的值是不可改变的,但是我们可以对元组进行重新赋值的方法来改变元组。元组是更简单的列表,要是使用不可改变的数据列表,可以考虑元组。
二、例题
1.for循环
1.创建一个披萨列表,用for循环输出语句,并打印一句总结性话语。
2.动物列表、总结性话语。
#pizzas
pizzas=['seafood pizza','sausague pizza','cheese pizza','beef pizza']
pizza_message='I like '
pizza_conclusion='I really like pizza.'
for pizza in pizzas:
print(pizza_message+pizza)
print(pizza_conclusion)
#animals
animals=['dog','cat','bird']
animal_conclusion='Any of these animals would make a great pet.'
for animal in animals:
print("A "+animal+" would make a great pet")
print(animal_conclusion)
结果如下
I like seafood pizza
I like sausague pizza
I like cheese pizza
I like beef pizza
I really like pizza.
A dog would make a great pet
A cat would make a great pet
A bird would make a great pet
Any of these animals would make a great pet.
2.读入数据
1.数到20,用for打印
2.一千,创建一个到一千的数值列表,然后使用min与max函数,用sum计算总数。
3.奇数,1到20的奇数,输出
4.3的倍数,3到30中,
5.包含1到10的立方,然后打印
6.立方解析
#数到20
nums=list(range(1,21))
for num in nums:
print(num)
#2.一千
thous=list(range(1,1001))
print(min(thous))
print(max(thous))
print(sum(thous))
#奇数
odds=list(range(1,21,2))
for odd in odds:
print(odd)
#三的倍数
threes=list(range(3,31,3))
for three in threes:
print(three)
#立方
cubes=[]
for value in range(1,11):
cubes.append(value**3)
print(cubes)
#立方解析
cubes=[value**3 for value in range(1,11)]
print(cubes)
结果太长就不展示了。
3.切片
1.切片,前三个元素,中间三个元素,后三个元素
2.你的披萨与朋友的披萨,列表的复制
3.使用多个for循环。
#切片
foods=['dessert','ice cream','noodle','meat','vegetable','fruit','apple','pear']
print(foods[0:3]) #前三个
print(foods[-3: ])#后三个
print(foods[len(foods)//2-1:len(foods)//2+2])#中间三个
#披萨
my_pizzas=['seafood pizza','sausague pizza','cheese pizza','beef pizza']
friend_pizzas=my_pizzas[:]
my_pizzas.append('chicken pizza')
friend_pizzas.append('corn pizza')
print ('my favourite pizzas are : ')
print(my_pizzas)
print("my firend's favourite pizzas are :")
print(friend_pizzas)
#两个for使用
for my_pizza in my_pizzas:
print(my_pizza)
for friend_pizza in friend_pizzas:
print(friend_pizza)
结果
['dessert', 'ice cream', 'noodle']
['fruit', 'apple', 'pear']
['meat', 'vegetable', 'fruit']
my favourite pizzas are :
['seafood pizza', 'sausague pizza', 'cheese pizza', 'beef pizza', 'chicken pizza']
my firend's favourite pizzas are :
['seafood pizza', 'sausague pizza', 'cheese pizza', 'beef pizza', 'corn pizza']
seafood pizza
sausague pizza
cheese pizza
beef pizza
chicken pizza
seafood pizza
sausague pizza
cheese pizza
beef pizza
corn pizza
4.元组
有一个自助餐厅只有5种基本食物,将食物储存在一个元组中
使用for循环将他们打印出来
编写一个代码块,给元组赋值,并重新打印出来。
#元组
foods=('meat','fish','fruit','ice cream','drink')
for food in foods:
print(food)
foods=('meat','fish',"fruit",'dessert','water')
for food in foods:
print(food)
结果
meat
fish
fruit
ice cream
drink
meat
fish
fruit
dessert
water
总结
本章比较重要的有:
1.for语句的使用
2.列表的切片
3.元组