python之列表切片 你的選單和我的選單

2021-09-02 14:59:57 字數 2340 閱讀 2389

任務描述

我們在前三關中學習了如何處理單個列表元素和所有列表元素,在這一關中我們還將學習如何處理部分列表元素——python中稱為切片。

例如,當我們去餐館吃飯點菜時,你的選單和我的選單有些時候是一模一樣,也有些時候是部分菜名一樣。那麼如何根據我已經點好的選單生成你的選單呢?

本關通過菜名列表的部分複製,讓讀者了解並掌握列表切片的基礎知識。

相關知識

python切片是對乙個列表取其部分元素獲得乙個子串行的常見操作,切片操作的返回結果型別與被切片的物件一致。要建立乙個已有列表的切片,通過指定切片的第乙個列表元素和最後乙個列表元素的索引號即可。其基本語法如下:

list_slice = source_list[start:end:step]

其中,例如,下面是我已經點好的菜名列表,現在朋友點的選單中包含我的前三個菜名,輸出朋友的選單:

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檔案的**內容,實現如下功能:

本關涉及的**檔案src/step4/foods.py的**框架如下:

# coding=utf-8

# 建立並初始化my_munu列表my_menu =while true:try:food = input()except:break

# 請在此新增**,對my_menu列表進行切片操作###### begin ######

####### end #######

評測說明

本關的測試檔案是src/step4/foods.py,測試過程如下:

平台自動編譯並執行foods.py,並以標準輸入方式提供測試輸入;

平台獲取程式輸出,並將其輸出與預期輸出對比。如果一致則測試通過,否則測試失敗。

以下是平台對src/step4/foods.py的樣例測試集:

測試輸入:

pizza

chicken

carrot

banana

測試輸入:

tomato

eggplant

beet

預期輸出:

['tomato']

['tomato','eggplant','beet']

開始你的任務吧,祝你成功!

# coding=utf-8

# 建立並初始化my_munu列表

my_menu =

while true:

try:

food = input()

except:

break

# 請在此新增**,對my_menu列表進行切片操作

###### begin ######

my_munu =

for i in range(0,len(my_menu),3):

print(my_munu)

print(my_menu[-3:])

####### end #######

python 之 列表修改元素 切片

一 slice 函式 slice 函式實現切片物件,主要用在切片操作函式裡的引數傳遞。語法 1.class slice stop 2.class slice start,stop,step 這三個引數都有預設的預設值,但是為了與index區別,slice語法中至少要有乙個 1.myslice sli...

python 切片 Python 列表切片

想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...

Python之列表的排序

python方法sort 讓你能夠較為輕鬆地對列表進行排序。假設你有乙個汽車列表,並要讓其 中的汽車按字母順序排列。為簡化這項任務,我們假設該列表中的所有值都是小寫的 cars bmw audi toyota subaru cars.sort print cars audi bmw subaru t...