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 混乱中保存