使用食品對象清單 從食品清單中刪除非素食食品 使用遞歸算法 僅返回素食食品。從食物清單中刪除非素食食物。
這是問題,但它讓我感到困惑,因爲它需要使用輔助功能。
有人能解釋給我嗎?
的食品中(food.txt)名單看起來像:
Spicy Vegetable Moo Shu|1|True|140
BBQ Pork|1|False|920
使用食品對象清單 從食品清單中刪除非素食食品 使用遞歸算法 僅返回素食食品。從食物清單中刪除非素食食物。
這是問題,但它讓我感到困惑,因爲它需要使用輔助功能。
有人能解釋給我嗎?
的食品中(food.txt)名單看起來像:
Spicy Vegetable Moo Shu|1|True|140
BBQ Pork|1|False|920
def veggie_r_ip(foods, curIndex):
if(curIndex >= len(foods)):
return
curFood = foods[curIndex]
is_veggie = curFood.split('|')[2]
if is_veggie == "False":
foods.remove(curFood)
veggie_r_ip(foods, curIndex)
else:
veggie_r_ip(foods, curIndex + 1)
def main():
foods =['Spicy Vegetable Moo Shu|1|True|140', 'BBQ Pork|1|False|920', 'Chicken Breast|1|False|920', 'Salad|1|True|920']
veggie_r_ip(foods, 0)
print foods
非常感謝,知道這很清楚。 –
當它說使用遞歸,這意味着你應該從功能定義中調用該函數。例如,讓你開始:
def recurse(inputs_list):
if('b' in inputs_list):
inputs_list.remove('b')
return recurse(inputs_list)
return inputs_list
inputs =['a', 'b', 'c', 'b', 'c', 'd', 'e', 'b', 'e', 'f', 'b']
print recurse(inputs)
輸出:
>>['a', 'c', 'c', 'd', 'e', 'e', 'f']
您使用遞歸,因爲一個.remove()將刪除與搜索字符串匹配的第一個元素。
你是對的,但在它需要使用遞歸輔助函數的問題。 –
輔助功能是什麼?描述中說:「從食物清單中刪除非素食食物,使用遞歸算法 使用:veggie_r_ip(食物)」,它與父函數完全相同。 – Chris
假設list
,你可以使用recursion
作爲,
>>> foods = ['Spicy Vegetable Moo Shu|1|True|140', 'BBQ Pork|1|False|920', 'Chicken Breast|1|False|920', 'Salad|1|True|920']
>>> def veggie_r_ip(foods):
... for f in foods:
... is_veggie = f.split('|')[2]
... if is_veggie == 'False':
... foods.remove(f)
... veggie_r_ip(foods)
... return foods
...
>>> veggie_r_ip(foods)
['Spicy Vegetable Moo Shu|1|True|140', 'Salad|1|True|920']
對不起,你的問題不清楚,因爲它是,你有什麼要解釋呢? –
該列表甚至不是python中的有效列表 – danidee
請您[教授或TA](http://bohr.wlu.ca/cp164/asgns/asgn07.php?d=2016-03-04)澄清。或者不要,正如頁面上的描述一樣。 – 2016-03-04 09:06:59