python - 从文本文件创建字典

标签 python file dictionary

如何从文本文件创建字典?我不希望文本文件本身有任何特殊内容,因为我想从 Python 直接写入文件。

文本文件:

Soda $2 Burger $5 Shake $4 Fries $3

代码:

file = 'file.dat'
filer = open(file, "r")
food = {}
for i in filer:
    x = i.split(" ")
    for i in range(len(x)):
        if i %2 == 0:
            a = x[i]
        else:
            b = x[i]
        food[a] = b

最佳答案

Oh shoot it works!

不,不应该。它应该给您一条“NameError:名称'b'未定义”消息。如果设置了 'a',则当 food[a] = [b] 发生时,'b' 要么未设置,要么是上次交互留下的。一种更Pythonic的方法来解决这个问题可能是:

file_name = 'file.dat'

food = {}

with open(file_name) as file:
    for line in file:
        pairs = line.split()
        food.update(zip(pairs[0::2], pairs[1::2]))

产品

{'Shake': '$4', 'Fries': '$3', 'Soda': '$2', 'Burger': '$5'}

关于python - 从文本文件创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40313451/

相关文章:

python - Newton - python 中的 CG 优化,雅可比行列式的问题

python - 创建 numpy 数组的扩展 View

python - 为什么非 root 记录器不将任何日志写入日志文件?

python - 如何将 ldap3 条目处理为 json 或列表以进行进一步的数据处理?

具有/dev/零输入的 python 子进程

python - 将二进制转换为十六进制

c++ - 在另一个进程正在写入文件时读取文件

file - 平面文件修复工具

boost - C++ 中的区间映射

python - 如何通过不同的字典扩展 df 作为列?