我可以传递两个条件来在同一个字典中构建 key/value 对吗?

Can I pass two conditionals to build a key/value pair in the same dictionary?

我有两个 if 语句需要 运行 才能获得构建字典所需的所有信息。我有一个文本文件 'file.txt',其中的值由行分隔。我的代码的基本表示如下:

dict = {}
    for line in 'file.txt':
        line = line.strip()
            if line.startswith('Key: '):
                key = print(line)

此时我需要另一个 if 语句来获取需要与我刚刚定义的 'key' 配对的值:

elif line.startswith('Value: '):
    value = print(line)

现在我需要更新字典,但我超出了范围,我不知道如何将 keyvalue 绑定在同一个字典中,其值已获得通过逐行检查 'file.txt' 以确保键与正确的值配对。有没有办法做到这一点?

文件(打开时)看起来像一个由换行符分隔的列表:"Filename: name, Size: 200MB, Version: 2.2.2, etc..." 这种模式重复出现。所以我需要抓取 'Filename',跳过 'Size',抓取 'Version',并将两者放在一起作为 key/value 对。

找到钥匙。继续寻找,直到找到一个值。如果您的数据文件是一个简单的交替,则此代码中的 "None" 内容无关紧要。如果您在这方面有间歇性错误,您可以利用 "None"

dict = {}
infile = open("in", 'r')
for line in infile:
    line = line.strip()
    line = line.split(',')
    print "line:  ", line
    for field in line:
        field = field.strip()
        print "field:", field
        if field.startswith('Filename: '):
            key = field.split(':')[1]
            value = None

        elif field.startswith('Version: '):
            value = field.split(':')[1]
            if key is not None:
                dict[key] = value
                value = None
                key = None

print dict

这是输出,给定您的输入行:

line:   ['Filename: name', ' Size: 200MB', ' Version: 2.2.2']
field: Filename: name
field: Size: 200MB
field: Version: 2.2.2
{' name': ' 2.2.2'}