从文本文件python创建嵌套列表的函数

时间:2012-11-13 20:24:42

标签: python 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())

    return food_list

返回:[['milk', 'cheese', 'cream cheese', 'eggs'], ['bread', 'buns', 'pita'], ['hamburgers', 'hotdogs', 'chicken'], ['chicken soup', 'canned tuna']]

错过了最后一个块:lettuce, cabbage

1 个答案:

答案 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