Python笔记-008-使用列表的一部分

1.8.1 切片
要创建切片,可指定要使用的第一个元素和最后一个元素的索引,比如0-3就是0 1 2 号的元素。

nbastars=['James','wade','paul','Curry','durant']
print(nbastars[:4])

这里写图片描述
如果你没有指定第一个索引值,那么默认是从列表的第一个元素开始,正常的是[0:4]
当然你也可以让切片终止于末尾,也可以使用类似的用法

nbastars=['James','wade','paul','Curry','durant']
print(nbastars[1:])

这里写图片描述
从1 也就是第二个元素开始到最后一个元素。

1.8.2 遍历切片

nbastars=['James','wade','paul','Curry','durant']
print("Here is the first three players in NBA")
for value in nbastars[:3]:
    print(value.title())

这里写图片描述
很多情况下,切片都很有用。
比如:你可以在一个玩家退出游戏的时候将其最终得得分加到一个列表中,然后为获取最高的三个得分,可以将列表降序排列,再创建一个前三的切片。
Web可以用切片来分页显示信息,并在每页显示数量合适的信息。
1.8.3 复制列表
我们经常需要根据既有的列表来创建全新的列表

mynbastars=['James','wade','paul','Curry','durant']
myfriendstars=mynbastars[:]
print("My favorite  players in NBA is :")
print(mynbastars)

print("My friend favorite  players in NBA is :")
print(myfriendstars)

这里写图片描述

mynbastars=['James','wade','paul','Curry','durant']
myfriendstars=mynbastars[:]
mynbastars.append('Messi')
myfriendstars.append('Kobe')
print("My favorite  players in NBA is :")
print(mynbastars)
print("\n")
print("My friend favorite  players in NBA is :")
print(myfriendstars)

这里写图片描述
MESSI包含再我的列表中,KOBE包含在我朋友的列表中,区分开来,印证了确实有两个列表。

如果我们不使用切片的情况下复制列表,会出现什么情况呢?
下面的程序验证下:

mynbastars=['James','wade','paul','Curry','durant']

myfriendstars=mynbastars  #重点这条的区别  切片跟非切片


mynbastars.append('Messi')
myfriendstars.append('Kobe')
print("My favorite  players in NBA is :")
print(mynbastars)
print("\n")
print("My friend favorite  players in NBA is :")
print(myfriendstars)

这里写图片描述
这里将是将 mynbastars 赋值给 myfriendstars,所以不会有连个列表,也就是两个变量指向同一个列表,后续的增加操作也其实旧对同一列表操作。

1.8.4元组
不可改变的列表被称为元组:
元组看起来像列表,但是是使用圆括号而不是方括号标识。

dimension =(200,50)
print(dimension[0])
dimension[0]=23

试图改变,但是会导致python返回错误类型
这里写图片描述

如果想要存储一组值在程序的整个周期都不变的,可以使用元组。

注:元组不能修改元素,但是可以给存储元组的变量赋值。

动手练一练

4-10 切片 :选择你在本章编写的一个程序,在末尾添加几行代码,以完成如下任务。
打印消息“The first three items in the list are:”,再使用切片来打印列表的前三个元素。
打印消息“Three items from the middle of the list are:”,再使用切片来打印列表中间的三个元素。
打印消息“The last three items in the list are:”,再使用切片来打印列表末尾的三个元素。

nbastars=['James','wade','paul','Curry','durant']
print("Here is the  players in NBA")
print(nbastars)
print("\nThe first three item in the list are :")
for value in nbastars[0:3]:
    print(value.title())

print("\nThree items from the middle of the list are :")
for value in nbastars[1:4]:
    print(value.title())

print("\nThe last three items in the list are :")
for value in nbastars[-3:]:
    print(value.title())

4-11 你的比萨和我的比萨 :在你为完成练习4-1而编写的程序中,创建比萨列表的副本,并将其存储到变量friend_pizzas 中,再完成如下任务。
在原来的比萨列表中添加一种比萨。
在列表friend_pizzas 中添加另一种比萨。
核实你有两个不同的列表。为此,打印消息“My favorite pizzas are:”,再使用一个for 循环来打印第一个列表;打印消息“My friend’s favorite pizzas are:”,再使用一个for 循环来打印第二个列表。核实新增的比萨被添加到了正确的列表中。

nbastars=['James','wade','paul','Curry','durant']
mynbastars.append('Messi')
myfriendstars.append('Kobe')
print("My favorite  players in NBA is :")
print(mynbastars)
print("\n")
print("My friend favorite  players in NBA is :")
print(myfriendstars)

4-12 使用多个循环 : 在本节中, 为节省篇幅, 程序foods.py的每个版本都没有使用for 循环来打印列表。 请选择一个版本的foods.py, 在其中编写两个for 循环, 将各个食品列表都打印出来。

mynbastars=['James','wade','paul','Curry','durant']
myfriendstars=mynbastars[:]
myfriendstars.append('Kobe')

print("My friend favorite  players in NBA is :")
for value in myfriendstars[:]:
    print(value)

print("My favorite  players in NBA is :")
for value in mynbastars[:]:
    print(value)    

4-13 自助餐 : 有一家自助式餐馆, 只提供五种简单的食品。 请想出五种简单的食品, 并将其存储在一个元组中。
使用一个

使用一个for 循环将该餐馆提供的五种食品都打印出来。
尝试修改其中的一个元素, 核实Python确实会拒绝你这样做。
餐馆调整了菜单, 替换了它提供的其中两种食品。 请编写一个这样的代码块: 给元组变量赋值, 并使用一个for 循环将新元组的每个元素都打印出来。

foods=('rice','water','sugur','lemon','fish')
for food in foods:
        print(food)

# foods[0]='chicken'

foods=('rice','noodles','salad','lemon','fish')
for food in foods:
        print(food)

猜你喜欢

转载自blog.csdn.net/qq_35989861/article/details/81491032