任務描述
我們在前三關中學習了如何處理單個列表元素和所有列表元素,在這一關中我們還將學習如何處理部分列表元素——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...