我有一个包含餐馆信息的文本文件,需要做的是,将此信息插入到几个字典属性包括名称、等级、价格范围、烹饪类型
以下是txt的内容
Georgie Porgie
87%
$$$
Canadian,Pub Food
Queen St. Cafe
82%
$
Malaysian,Thai
到目前为止,我已经阅读了文件,并抓起一个列表的内容。你知道吗
content = [];
with open(file) as f:
content = f.readlines();
content = [x.strip() for x in content];
需要插入三本词典 名字,价格,菜名,我该怎么办?你知道吗
给定文本文件的最新格式规范:
如果你能假设:
然后您可以使用modulo operation并执行以下操作:
编辑: 以下解决方案是在您最初发布的格式设置之后提出的,如下所示:
我把原来的答案留在这里,以防对其他人仍然有用。你知道吗
作为JohanL mentioned in his comment,解决问题的最简单的方法是行格式:根据分隔符是逗号还是空格,或者两者的组合,考虑到餐厅的名称可能包含未知数量的单词,找到如何拆分行可能会变得很棘手。你知道吗
这里有一个与@gaurav建议的稍微不同的方法,使用regular expressions(
re
模块):假设您对源txt没有控制权,这种方法的优点是您可以定制regex模式以匹配它所附带的任何“非最佳”格式。你知道吗
看到您给出的文件示例,元素是以空格分隔的。你知道吗
所以,你的任务是:
具体做法如下:
在这种情况下,文件被逐行读取,结果被附加到一个列表
lines
。当列表的大小超过4时,所有属性都被读入列表。然后对它们进行处理,将数据保存在字典中。然后清空列表,以便再次执行该过程。你知道吗一般来说,要从列表
list_of_lists
构建词典列表lists_of_dicts
,将索引i
处的项映射到索引j
处的项,可以使用如下dict comp:您应该能够将此应用于任意
list_of_lists
以解决您的问题。你知道吗相关问题 更多 >
编程相关推荐