Python列表--第4关:列表切片:你的菜单和我的菜单

Python列表切片:菜单元素处理
部署运行你感兴趣的模型镜像

任务描述
我们在前三关中学习了如何处理单个列表元素和所有列表元素,在这一关中我们还将学习如何处理部分列表元素——Python中称为切片。

例如,当我们去餐馆吃饭点菜时,你的菜单和我的菜单有些时候是一模一样,也有些时候是部分菜名一样。那么如何根据我已经点好的菜单生成你的菜单呢?

本关通过菜名列表的部分复制,让读者了解并掌握列表切片的基础知识。

相关知识
Python切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。其基本语法如下:

list_slice = source_list[start:end:step]

其中,

source_list:被切片的源列表

list_slice:切片后生成的子序列列表

start:切片起始索引位置,省略则从头开始

end:切片结束索引位置,省略则切至列表末尾

step:切片步长,可选参数,表示每N个元素取一个,默认为1

注意:切片和range()函数一样,Python会自动到达所指定切片结束索引位置的前面一个元素停止。

例如,下面是我已经点好的菜名列表,现在朋友点的菜单中包含我的前三个菜名,输出朋友的菜单:

my_menu = ['fish','pork','pizza','carrot']
print(my_menu[1:4:2])
print(my_menu[:3])
print(my_menu[2:])

输出结果:
['pork','carrot']
['fish','pork','pizza']
['pizza','carrot']

负数索引返回离列表末尾相应间隔的元素。列表末尾元素的索引是从-1开始的。

例如,朋友的菜单是包含我的菜单最后3个菜名:

my_menu=['fish','pork','pizza','carrot']
print(my_menu[-3:])

输出结果:
['pork','pizza','carrot']

编程要求
本关的编程任务是补全src/Step4/foods.py文件的代码内容,实现如下功能:

利用切片方法从my_menu列表中每3个元素取1个,组成子序列并打印输出;
利用切片方法获取my_menu列表的最后三个元素组成子序列并打印输出。
本关涉及的代码文件src/Step4/foods.py的代码框架如下:

# coding=utf-8
# 创建并初始化my_munu列表
my_menu = []
while True:
    try:
        food = input()
        my_menu.append(food)
    except:
        break
# 请在此添加代码,对my_menu列表进行切片操作
###### Begin ######
 
#######  End #######

评测说明
本关的测试文件是src/Step4/foods.py,测试过程如下:

平台自动编译并运行foods.py,并以标准输入方式提供测试输入;
平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/Step4/foods.py的样例测试集:

测试输入:
pizza
chicken
carrot
apple
banana
预期输出:
['pizza','apple']
['carrot','apple','banana']

测试输入:
tomato
eggplant
beet
预期输出:
['tomato']
['tomato','eggplant','beet']

开始你的任务吧,祝你成功!

在希望与失望的决斗中,如果你用勇气与坚决的双手紧握着,胜利必属于希望。

答案

# coding=utf-8

# 创建并初始化my_menu列表
my_menu = []
while True:
    try:
        food = input()
        my_menu.append(food)
    except:
        break

# 请在此添加代码,对my_menu列表进行切片操作
###### Begin ######
print(my_menu[0:len(my_menu)+1:3])
print(my_menu[-3:])
#######  End #######

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值