0

所以我是一个初学者程序员,正在学习编程:在 couera 上制作高质量的代码课程。我有一个文件restaurant_small.txt

restaurant.txt 格式是餐厅评分,

georgieporgie:50
dumpling r us:70
queens cafe:60

我可以逐行阅读

dictionary = {}
our_file = open(file)
#using an iterator to read files
for line in iter(our_file):
    dictionary = ??

我希望能够建立一个字典{'restaurant':'rating'} 我该怎么做,一个简单的一步一步的赞赏

4

2 回答 2

5

类似于列夫的答案,但构建一个行生成器,首先从末尾拆分,并使用 dict 理解一次构建它......

with open('input') as fin:
    lines = (line.rsplit(':', 1) for line in fin)
    dictionary = {k:int(v) for k, v in lines}
于 2013-04-04T12:56:18.473 回答
2
dictionary = {}
with open('restaurant_small.txt') as our_file:
    for line in our_file:
       rest, rating = line.split(':')
       dictionary[rest] = int(rating)

with语句是使用文件的推荐方法,可以正确处理异常等情况并确保文件始终在最后关闭。大致相当于

our_file = open('restaurant_small.txt')
# do the rest
our_file.close()

除了如果之前出现问题close(),无论如何都会调用它。with该声明的更接近的等价物是

our_file = open('restaurant_small.txt')
try:
    # do the rest
finally:
    our_file.close()
于 2013-04-04T12:35:39.137 回答