为什么我要在{}
结尾使用空字典并将字典输出到换行符..
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
答案 0 :(得分:1)
由于文件的“第三”行为空,因此不包含年龄或名称。
如果要将所有行的结果合并到一个字典中,请不要为每一行重新初始化它。
答案 1 :(得分:1)
您需要跳过空行:
if not line.strip(): continue
空行(仅由换行符和其他一些空格(例如空格或制表符)组成)不包含任何名称和年龄,也很难发现它是文件的最后一行正在使用cat
将文件输出到终端。