处理一个接受文本行并将其转换为内部列表的函数 在块之间的空间。代码适用于除最后一个块之外的所有块,它忽略或者其他东西。
代码:
def build_grocery_list(grocery_file):
food_list = []
inner_list = []
for line in grocery_file:
if line.strip() == "":
food_list.append(inner_list)
inner_list = []
if line.strip() != "":
inner_list.append(line.strip())
return food_list
返回:[['milk', 'cheese', 'cream cheese', 'eggs'], ['bread', 'buns', 'pita'], ['hamburgers', 'hotdogs', 'chicken'], ['chicken soup', 'canned tuna']]
错过了最后一个块:lettuce, cabbage
答案 0 :(得分:1)
如果文本文件末尾有一个空行,它将起作用。如果不是,它永远不会附加最后的inner_list。只需添加一个检查并在退出循环后追加。
def build_grocery_list(grocery_file):
food_list = []
inner_list = []
for line in grocery_file:
if line.strip() == "":
food_list.append(inner_list)
inner_list = []
if line.strip() != "":
inner_list.append(line.strip())
if (inner_list):
food_list.append(inner_list)
return food_list