Python从入门到实践(三)——操作列表


前言

上章我们学习了列表以及一些列对列表的操作,但多是一些对列表中元素的增删改查,这一章主要学习对整个列表的一些操作,而不仅局限在一些列表元素中。
本章主要学习了用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.元组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值