Python:My for循环不';t遍历列表中的所有项

Python:My for循环不';t遍历列表中的所有项,python,list,for-loop,python-3.x,Python,List,For Loop,Python 3.x,在学习Python的在线课程时,我们被鼓励自己编写一个特定的程序。这不是为了分数,只是为了练习。我不需要帮助解决这个问题,但我需要帮助,了解为什么我的代码没有像我认为的那样工作 代码的(相关)部分如下所示: raw_restaurants = file.readlines() print(raw_restaurants) restaurants = [] information = [] for i in raw_restaurants: if len(information) &l

在学习Python的在线课程时,我们被鼓励自己编写一个特定的程序。这不是为了分数,只是为了练习。我不需要帮助解决这个问题,但我需要帮助,了解为什么我的代码没有像我认为的那样工作

代码的(相关)部分如下所示:

raw_restaurants = file.readlines()

print(raw_restaurants)

restaurants = []
information = []
for i in raw_restaurants:
    if len(information) < 5:
        information.append(i.strip())
    if len(information) ==  5:
        restaurants.append(information)
        information = []
问题是我的函数作为输出给出:

[['Georgie Porgie', '87%', '$$$', 'Canadian,Pub Food', ''], 
 ['Queen St. Cafe', '82%', '$', 'Malaysian,Thai', ''], 
 ['Dumplings R Us', '71%', '$', 'Chinese', ''], 
 ['Mexican Grill', '85%', '$$', 'Mexican', '']]
这意味着所有关于油炸食品的部分都被剥离了。 有人知道我做错了什么吗?

您只有4项超过了
墨西哥烤肉
条目的空行,因此
如果len(information)==5:
测试永远不会变为真

如果信息中有项目,只需再追加一次
信息

for i in raw_restaurants:
    if len(information) < 5:
        information.append(i.strip())
    if len(information) ==  5:
        restaurants.append(information)
        information = []
if information:
    restaurants.append(information)
对于生食餐厅的i:
如果len(信息)<5:
information.append(i.strip())
如果len(信息)==5:
餐厅.附加(信息)
信息=[]
如果信息:
餐厅.附加(信息)

+1不仅可以发现问题,还可以提供解决方法(即使输入文件有缺陷,也可以正确解释)。请注意,为提高可读性而稍微编辑问题后,错误会变得非常明显。。。
for i in raw_restaurants:
    if len(information) < 5:
        information.append(i.strip())
    if len(information) ==  5:
        restaurants.append(information)
        information = []
if information:
    restaurants.append(information)