获取空字典并输出到换行符

时间:2018-07-07 17:05:13

标签: python-3.x

为什么我要在{}结尾使用空字典并将字典输出到换行符..

import re
with open("Namefile1", "r") as fh:
    for line in fh:
        #line = line.strip()
        ageC = re.findall(r'\d{1,3}', line)
        nameC = re.findall(r'[A-Z][a-z]*', line)
        ageDict = {}
        x = 0
        for eachname in nameC:
            ageDict[eachname] = ageC[x]
            x+=1
        print(ageDict)

结果:

$ ./nameExcercise1.py
{'Alia': '30', 'Celina': '30'}
{'Soma': '40', 'Beena': '40'}
{}

应为:

 {'Alia': '30', 'Celina': '30', 'Soma': '40', 'Beena': '40'}

文件:

$ cat Namefile1
Alia is 30 and Celina is 28
Soma is 40 and Beena is 22

2 个答案:

答案 0 :(得分:1)

由于文件的“第三”行为空,因此不包含年龄或名称。

如果要将所有行的结果合并到一个字典中,请不要为每一行重新初始化它。

答案 1 :(得分:1)

您需要跳过空行:

if not line.strip(): continue

空行(仅由换行符和其他一些空格(例如空格或制表符)组成)不包含任何名称和年龄,也很难发现它是文件的最后一行正在使用cat将文件输出到终端。