首页 > 解决方案 > 在 Python 中从文本文件创建不同的列表

问题描述

所以我有一个名为 DOB 的文本文件,其中包含姓名和出生日期,.txt 文件保存如下(我只包括前几行,因为其中有很多:

奥维尔赖特 1988 年 7 月 21 日

罗杰里奥·霍洛威 1988 年 9 月 13 日

玛乔丽·菲格罗亚 1988 年 10 月 9 日

黛布拉·加纳 1988 年 2 月 7 日

蒂芙尼·彼得斯 1988 年 7 月 25 日

休·福斯特 1988 年 6 月 2 日

我想做的是创建一个姓名列表,以及另一个包含出生日期的列表。但是,我不知道如何只提取一行中的特定单词并将它们附加到列表中。有人可以帮助我理解如何做到这一点吗?

标签: pythonlistloops

解决方案


此脚本假定人员可以有 2 个以上的姓名,并且日期由三个字符串(日、月和年)组成:

names, dates = [], []
with open('your_text_file.txt', 'r') as f_in:
    for line in map(str.strip, f_in):
        if not line:    # skip empty lines
            continue
        tmp = line.split()
        
        names.append(' '.join(tmp[:-3]))
        dates.append(' '.join(tmp[-3:]))

print(names)
print(dates)

印刷:

['Orville Wright', 'Rogelio Holloway', 'Marjorie Figueroa', 'Debra Garner', 'Tiffany Peters', 'Hugh Foster']
['21 July 1988', '13 September 1988', '9 October 1988', '7 February 1988', '25 July 1988', '2 June 1988']

推荐阅读