0

处理一个函数,该函数将文本行转换为基于块之间的空间的内部列表。该代码适用于除最后一个块之外的所有块,它会忽略它或其他东西。

代码:

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

4

1 回答 1

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
于 2012-11-13T20:33:28.853 回答