Python: 读取一个文件并把它变成一个以第一行+第二行为关键字的字典
Python: Read a file and turn it into a dictionary with first+second line being the key
我正在尝试读取如下所示的文件:
Lee
Louise
12345678
711-2880 Nulla St. Mississippi
Chapman
Eric
27681673
Ap 867-859 Sit Rd. New york
(...)
并将其制成字典,以姓和名为键,值为姓、名、电话和地址。它应该看起来像这样:
{'Lee Louise': ['Lee','Louise','12345678','711-2880 Nulla St. Mississippi'],'Chapman Eric': ['Chapman','Eric','27681673','Ap #867-859 Sit Rd. New york']}
这就是我到目前为止所做的:
d = dict()
fr = open('file.txt', 'r').readlines()
info = [k.split('\n') for k in fr]
for k in range(len(info)):
if k % 4 == 0:
list = info[k :k + 4]
new_list = [b[0] for b in list]
d[info[k][0]] = new_list
return d
我只设法将姓氏变成了钥匙..
我该怎么做才能将姓氏和名字都变成键?
替换d[info[k][0]] = new_list
与:
d[" ".join([info[k][0],info[k][1]]]) = new_list
您的代码存在几个问题
- 您正在覆盖 Python 函数 list- 坏主意。
- 您已经在阅读行 - 使用 strip('\n')、split 创建寄生列表。
- 在第 4 步中使用 范围
- 我有提到 1 个字母的变量名吗?
我会将您的代码片段重写为
info = open(...).read().splitlines() # Saves from re-building list
for offset in range(0, len(info), 4):
d[' '.join(info[offset: offset + 2]) = info[offset: offset + 4]
没有寄生列表 - 从 new_list 混乱中保存
我正在尝试读取如下所示的文件:
Lee
Louise
12345678
711-2880 Nulla St. Mississippi
Chapman
Eric
27681673
Ap 867-859 Sit Rd. New york
(...)
并将其制成字典,以姓和名为键,值为姓、名、电话和地址。它应该看起来像这样:
{'Lee Louise': ['Lee','Louise','12345678','711-2880 Nulla St. Mississippi'],'Chapman Eric': ['Chapman','Eric','27681673','Ap #867-859 Sit Rd. New york']}
这就是我到目前为止所做的:
d = dict()
fr = open('file.txt', 'r').readlines()
info = [k.split('\n') for k in fr]
for k in range(len(info)):
if k % 4 == 0:
list = info[k :k + 4]
new_list = [b[0] for b in list]
d[info[k][0]] = new_list
return d
我只设法将姓氏变成了钥匙.. 我该怎么做才能将姓氏和名字都变成键?
替换d[info[k][0]] = new_list
与:
d[" ".join([info[k][0],info[k][1]]]) = new_list
您的代码存在几个问题
- 您正在覆盖 Python 函数 list- 坏主意。
- 您已经在阅读行 - 使用 strip('\n')、split 创建寄生列表。
- 在第 4 步中使用 范围
- 我有提到 1 个字母的变量名吗?
我会将您的代码片段重写为
info = open(...).read().splitlines() # Saves from re-building list
for offset in range(0, len(info), 4):
d[' '.join(info[offset: offset + 2]) = info[offset: offset + 4]
没有寄生列表 - 从 new_list 混乱中保存