Python 将文件转换为dict

Python 将文件转换为dict,python,string,file,dictionary,Python,String,File,Dictionary,如何将文件的内容转换为字典? 内容将包括此表单中的菜单项: 1 Chocolate ice cream 2 Green tea 8 Shrimp roll 我希望关键是数字,价值是食物 到目前为止,我得到: d = {} for line in menu.read().strip().split(): d[line[0]] = d[line[1:]] return d 但这会产生扭曲…逐行在文件对象上循环,然后拆分行: with open('inputfilename.txt'

如何将文件的内容转换为字典? 内容将包括此表单中的菜单项:

1 Chocolate ice cream
2 Green tea
 8 Shrimp roll
我希望关键是数字,价值是食物

到目前为止,我得到:

d = {}
for line in menu.read().strip().split():
      d[line[0]] = d[line[1:]]
return d

但这会产生扭曲…

逐行在文件对象上循环,然后拆分行:

with open('inputfilename.txt') as menu:
    d = {}
    for line in menu:
        key, value = line.split(None, 1)
        d[key] = value.strip()
    return d
.split(None,1)
调用应用默认的分割算法(在任意宽度的空白上分割),但将其限制为仅一次分割,以仅返回两个项目。优点是以空格开头的行(例如文章中的
'8 Shrimp roll'
行)也能正确处理,因为在拆分之前前导空格会被删除

这将产生:

{'2': 'Green tea', '1': 'Chocolate ice cream', '8': 'Shrimp roll'}
您可以尝试以下方法:

d = {}
for line in menu.read().strip().split():
      d[line[0]] = line[1:] # you want to use just line[1:], than d[line[1:]]
return d
这里的问题是
d[line[1:]
提供键
line[1:][/code>映射的值

>>> finalDict = {}
>>> with open('fileName.txt', 'r') as f:
        for line in f:
            key, elem = line.strip().split(" ", 1)
            finalDict[int(key)] = elem


>>> finalDict
{8: 'Shrimp roll', 1: 'Chocolate ice cream', 2: 'Green tea'}

我们迭代文件的每一行,将其剥离,然后在第一个空格处将其拆分。

字典理解如何

{ k:v.strip() for k, v in (line.split(None, 1) for line in menu) }