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

时间:2015-10-13 23:41:12

标签: python dictionary key

我有两个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..."此模式重复。所以我需要抓住'文件名',跳过'尺寸',抓住'版本',并将两者放在一起作为键/值对。

1 个答案:

答案 0 :(得分:1)

找到钥匙。继续寻找直到找到价值。如果您的数据文件是一个简单的替换,则此代码中的“无”内容无关紧要。如果您在此方面存在间歇性错误,则可以使用“无”

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'}